Sehr unausgeglichener Testdatensatz und ausgewogene Trainingsdaten in der Klassifizierung

9

Ich habe ein Trainingsset mit ungefähr 3000 positiven und 3000 negativen Instanzen. Aber mein Testdatensatz ist ziemlich unausgeglichen. Der positive Satz hat nur 50 Instanzen und der negative 1500 Instanzen. Dies führt dazu, dass die Genauigkeit sehr gering ist. Gibt es Ansätze zur Lösung dieses Problems? Ich benutze SVM, um einen Klassifikator zu erstellen.

user785099
quelle
3
Dies sollte nicht passieren ..... Trainingsdaten und Testdaten sollten zufällige Auswahlen aus demselben Datensatz sein.
Peter Flom

Antworten:

5

Dies wird als Dataset Shift-Einstellung bezeichnet. Dieses PDF [1] soll Ihnen helfen, einige der zugrunde liegenden Probleme zu verstehen.

Im Moment können Sie jedoch die Wichtigkeitsanpassung der kleinsten Quadrate verwenden, um Wichtigkeitsschätzungen für Ihre Trainingsdaten mithilfe Ihres Testsatzes zu erhalten (Sie benötigen keine Testsatzbezeichnungen, nur die Merkmalsvektoren) [2]. Sobald Sie die Wichtigkeitsschätzungen erhalten haben, können Sie sie als Instanzgewichte in libSVM [3] verwenden.

Das sollte es Ihnen ermöglichen, einen besseren Klassifikator zu erhalten.

[1] http://www.acad.bg/ebook/ml/The.MIT.Press.Dataset.Shift.in.Machine.Learning.Feb.2009.eBook-DDU.pdf
[2] http: // www .ms.ku-tokyo.ac.jp / software.html # uLSIF
[3] http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances

TenaliRaman
quelle
Was würde passieren, wenn der Trainingssatz ausgeglichen ist, der Testsatz jedoch nicht? Sollten beide die gleiche Verteilung haben?
Möchte
1
@wannik Wenn Ihr Trainings- und Test-Set Zufallsstichproben aus den tatsächlichen Daten sind, müssen sie identische Verteilungen aufweisen. Fast jeder von uns verwendete Klassifikator erwartet, dass die Daten diese Form haben. Die von Ihnen beschriebene Situation ist jedoch ein recht häufiges Szenario. In dieser Situation ist das Verhalten des Klassifikators schwer vorherzusagen. Im Allgemeinen 1] Verwenden Sie einen einfachen Klassifikator, wenn er funktioniert, dann großartig. 2] Wenn nicht, kennen Sie den Klassenanteil in Test Apriori? Wenn ja, verwenden Sie die Transduktion SVM 3] Wenn nicht, verwenden Sie den gleichen Ansatz wie in der ursprünglichen Antwort (Wichtigkeitsgewichte).
TenaliRaman
1
Aktualisierter Link zur Software zur Wichtigkeitsschätzung von Sugiyama et al. ms.ku-tokyo.ac.jp/software.html#uLSIF
AruniRC
1

Denken Sie, dass die "reale Welt" eher wie das Trainingsset oder das Testset aussieht? Wenn es eher dem Trainingssatz ähnelt, können Sie zufällig 50 Instanzen aus Ihrem negativen Testsatz auswählen, um eine unvoreingenommenere Schätzung der Genauigkeit zu erhalten. Aber ich stimme Peter Flom zu: Im Allgemeinen sollten Ihre Test- und Zugsets beide ähnlich aussehen.

Stefan Wager
quelle