4 Stimmen

LibSVM: -wi-Option (Gewichtsauswahl) während der Kreuzvalidierung und Prüfung

Ich brauche Hilfe bezüglich der Gewichtsoption von libSVM. Ich bin an einem Punkt verwirrt; sollen wir auch die Option -wi verwenden, während wir die Kreuzvalidierung durchführen? Wenn ja, sollten wir die berechneten Gewichte der gesamten Daten verwenden oder die berechneten Gewichte gemäß der v-1 Teilmengen (für die v-fache Kreuzvalidierung)? Und meine zweite Frage ist, sollten wir die -wi-Option während der Vorhersage verwenden? Wenn ja, sollten wir die während des Trainings berechneten Gewichte verwenden oder sollten wir die Gewichte gemäß der Verteilung von negativen und positiven Instanzen in den Testdaten berechnen?

Zum Beispiel; wir haben 50 + Daten und 200 - Daten. Also, nachdem wir die besten c und Gamma-Parameterwerte berechnet haben, werden wir die Optionen -w1 4 -w-1 1 beim Training verwenden. Aber was ist mit dem Training während der Gittersuche und der Kreuzvalidierung? Angenommen, wir führen eine 5-fache Kreuzvalidierung durch. Während des Trainings auf den jeweils verbleibenden 4 Teilmengen wird sich die Verteilung der negativen und positiven Instanzen wahrscheinlich ändern. Sollten wir also die Gewichte während dieser 5-fachen Kreuzvalidierung neu berechnen?

Sollten wir außerdem die Optionen -w1 4 -w-1 1 beim Testen verwenden?

Danke

6voto

Yevgeny Punkte 256

Um Ihre erste Frage zu beantworten, wenn Sie nicht-triviale Gewichte auf eine Teilmenge von Klassen während des Modelltrainings anwenden, sollten Sie dies auch während Ihres gesamten Trainings/Tunings tun, einschließlich des C- und Gamma-Tunings basierend auf Kreuzvalidierung (sonst würden Sie das Modell basierend auf der kostenempfindlichen Ziel-/Risiko-/Verlustfunktion optimieren, die sich von der unterscheidet, die Sie tatsächlich angeben, wenn Sie nicht-triviale Klassen gewichten).

Die Klassen gewichte sind extern zu libSVM in dem Sinne, dass sie nicht von libSVM berechnet werden - diese Befehlszeilenoption ermöglicht es einem Benutzer, seine eigenen Klassengewichte festzulegen, um die Bedeutung einer Teilmenge von Klassen zu betonen/reduzieren. Einige Leute optimieren auch die Klassengewichte, aber das ist eine andere Geschichte.

Was die Vorhersage betrifft, werden die Klassengewichte dort nicht explizit verwendet (da sie als "Feinabstimmung" der Ziel-/Risiko-/Verlustfunktion während des Modelltrainings/Tunings auftreten, ist das resultierende Modell bereits "bewusst" von den Gewichten).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X