Weka: Ergebnisse jeder Falte im 10-fachen CV

8

Wenn wir für Weka Explorer (GUI) einen 10-fachen Lebenslauf für eine gegebene ARFF -Datei machen, dann ist der Weka Explorer (soweit ich das sehen kann) das Durchschnittsergebnis für alle die 10 Falten.

Q. Gibt es eine Möglichkeit, die Ergebnisse jeder Falte zu erhalten? Zum Beispiel brauche ich die Fehlerraten (falsch identifizierte Instanzen) für jede Falte.

Hilfe geschätzt.

    
Rushdi Shams 02.06.2012, 06:14
quelle

2 Antworten

14
___ tag123machineelearning ___ Implementierungsfragen zu Algorithmen des maschinellen Lernens. Allgemeine Fragen zum maschinellen Lernen sollten in ihren jeweiligen Communities veröffentlicht werden. ___ tag123weka ___ Weka (Waikato-Umgebung für Wissensanalyse) ist eine in Java geschriebene Open-Source-Machine-Learning-Bibliothek. ___ answer 10869651 ___

Ich denke, das ist mit Wekas ​​GUI möglich. Sie müssen den Experimentator anstelle des Explorers verwenden. Hier sind die Schritte:

  1. Öffnen Sie Experimenter in der GUI-Auswahl
    • Erstellen Sie ein neues Experiment ( New button @ oben rechts)
    • [optional] Geben Sie einen Dateinamen und einen Speicherort in Results Destination ein, um die Ergebnisse in
    • zu speichern
    • Setze Number of (cross-validation) folds nach Belieben ein (experimentiere mit 2 Falten für einfache Ergebnisse)
    • Fügen Sie Ihr Dataset hinzu (wenn Ihr Dataset eine Vorverarbeitung benötigt, sollten Sie dies zuerst im Explorer tun und dann das vorverarbeitete Dataset speichern)
    • Setze Number of repetitions (ich empfehle 1 für den Start von)
    • Fügen Sie den / die Algorithmus (e) hinzu, die Sie testen möchten (beginnen Sie wieder einfach, beginnen Sie mit einem Algorithmus)
  2. Gehe zum Run Tab und Start des Experiments und warte, bis es fertig ist
  3. Wechseln Sie zum Tab Analyse und importieren Sie die Testergebnisse, indem Sie auf Experiment (oben rechts) klicken.
    • Für Row wählen Sie: Fold
    • Für Column wählen Sie: Percent_incorrect oder Number_incorrect (oder ein anderes Maß, das Sie sehen möchten)
    • Sie sehen nun die angegebenen Ergebnisse für jede Falte
___ qstntxt ___

Wenn wir für Weka Explorer (GUI) einen 10-fachen Lebenslauf für eine gegebene ARFF -Datei machen, dann ist der Weka Explorer (soweit ich das sehen kann) das Durchschnittsergebnis für alle die 10 Falten.

Q. Gibt es eine Möglichkeit, die Ergebnisse jeder Falte zu erhalten? Zum Beispiel brauche ich die Fehlerraten (falsch identifizierte Instanzen) für jede Falte.

Hilfe geschätzt.

    
___ answer10862508 ___

Weka Explorer hat keine Option, die Ergebnisse für einzelne Falten anzugeben, wenn die Option crossvalidation verwendet wird. Es gibt einige Problemumgehungen. Wenn Sie explizit keinen Code ändern möchten, müssen Sie manuell fummeln, aber ich denke, das gibt mehr oder weniger das, was Sie wollen

  1. Anstelle von %code% , wählen Sie %code% und setzen Sie es auf 90%
  2. Starten Sie den Klassifizierer
  3. Klicken Sie auf %code% und ändern Sie den Wert %code% in etwas, das Sie noch nicht verwendet haben.
  4. Wiederholen Sie das zehnmal.

Dies entspricht jedoch nicht unbedingt einer 10-fachen Kreuzvalidierung, da sich die Pseudofalten, die Sie auf diese Weise machen, überlappen könnten.

Eine Alternative, die der Crossvalidierung gleichkommt, aber umständlicher ist, wäre, 10 Falten manuell zu machen, indem Sie den unüberwachten Instanzfilter %code% oder %code% verwenden. Generiere und speichere 10 Trainingssätze und 10 Testsets. Lade dann für jede Falte den Trainingssatz, wähle %code% in der Registerkarte "Klassifizieren" und wähle die entsprechende Testfalte aus.

    
___ qstnhdr ___ Weka: Ergebnisse jeder Falte im 10-fachen CV ___
Sicco 03.06.2012, 10:44
quelle
3

Weka Explorer hat keine Option, die Ergebnisse für einzelne Falten anzugeben, wenn die Option crossvalidation verwendet wird. Es gibt einige Problemumgehungen. Wenn Sie explizit keinen Code ändern möchten, müssen Sie manuell fummeln, aber ich denke, das gibt mehr oder weniger das, was Sie wollen

  1. Anstelle von Cross-validation , wählen Sie Percentage split und setzen Sie es auf 90%
  2. Starten Sie den Klassifizierer
  3. Klicken Sie auf More options... und ändern Sie den Wert Random seed for XVal / % Split in etwas, das Sie noch nicht verwendet haben.
  4. Wiederholen Sie das zehnmal.

Dies entspricht jedoch nicht unbedingt einer 10-fachen Kreuzvalidierung, da sich die Pseudofalten, die Sie auf diese Weise machen, überlappen könnten.

Eine Alternative, die der Crossvalidierung gleichkommt, aber umständlicher ist, wäre, 10 Falten manuell zu machen, indem Sie den unüberwachten Instanzfilter RemoveFolds oder RemoveRange verwenden. Generiere und speichere 10 Trainingssätze und 10 Testsets. Lade dann für jede Falte den Trainingssatz, wähle Supplied test set in der Registerkarte "Klassifizieren" und wähle die entsprechende Testfalte aus.

    
Junuxx 02.06.2012 13:01
quelle

Tags und Links