Testen der Klassifizierung von überabgetasteten Ungleichgewichtsdaten

18

Ich arbeite an stark unausgeglichenen Daten. In der Literatur werden verschiedene Methoden verwendet, um die Daten durch erneutes Abtasten (Über- oder Unterabtasten) neu abzugleichen. Zwei gute Ansätze sind:

  • SMOTE: Synthetic Minority-Überabtastung ( SMOTE )

  • ADASYN: Adaptiver Ansatz zur synthetischen Probenahme für unausgewogenes Lernen ( ADASYN )

Ich habe ADASYN implementiert, weil es anpassungsfähig ist und sich problemlos auf Probleme mit mehreren Klassen ausweiten lässt.

Meine Frage ist, wie man die überabgetasteten Daten testet, die von ADASYN (oder anderen überabgetasteten Methoden) erzeugt werden. In den beiden genannten Arbeiten ist nicht klar, wie sie ihre Experimente durchgeführt haben. Es gibt zwei Szenarien:

1- Überabtasten Sie den gesamten Datensatz und teilen Sie ihn in Trainings- und Testsätze (oder Kreuzvalidierung) auf.

2- Führen Sie nach dem Aufteilen des Originaldatensatzes eine Überabtastung nur für den Trainingssatz durch und testen Sie den Originaldatensatz (kann mit Kreuzvalidierung durchgeführt werden).

Im ersten Fall sind die Ergebnisse viel besser als ohne Überabtastung, aber ich bin besorgt, wenn es Überanpassung gibt. Im zweiten Fall sind die Ergebnisse etwas besser als ohne Überabtastung und viel schlechter als im ersten Fall. Das Problem mit dem zweiten Fall ist jedoch, dass bei einer Überabtastung kein Vorteil erzielt wird, wenn alle Stichproben der Minderheitsklasse in das Testset gelangen.

Ich bin nicht sicher, ob es andere Einstellungen zum Testen solcher Daten gibt.

Tarife
quelle

Antworten:

18

Ein paar Kommentare:

Die Option (1) ist eine sehr schlechte Idee. Kopien desselben Punktes können sowohl im Trainings- als auch im Testsatz landen. Auf diese Weise kann der Klassifizierer schummeln, da der Klassifizierer beim Versuch, Vorhersagen auf dem Testset zu treffen, bereits identische Punkte im Zugset gesehen hat. Der springende Punkt bei einem Test-Set und einem Zug-Set ist, dass das Test-Set unabhängig vom Zug-Set sein sollte.

k

Stefan Wager
quelle
Danke Stefan für die Antwort. Aber ich möchte einen Punkt klarstellen: Die Methoden, die ich erwähnt habe, erzeugen "synthetische" Instanzen der Daten, die nicht exakt mit denen des Originals übereinstimmen. Es ist also nicht so, als würde ich mit denselben Trainingsdaten testen. Ich bin mir aber immer noch nicht sicher, ob Option 1 ein gültiger Ansatz ist.
Preise
OK, ich verstehe! Das Problem mit (1) bleibt jedoch bestehen, auch wenn Sie "synthetische" Daten erstellen, da die synthetischen Daten in der Regel den ursprünglichen Daten, die sie imitieren, sehr ähnlich sind.
Stefan Wager
@StefanWager was ist mit der Verteilung des Testsets? Sollte es derselbe sein wie der ursprüngliche Datensatz?
Wannik
2
Verweise auf Artikel zur Untermauerung dieser Behauptung?
girl101
@ stefans ansatz ist richtig, dass Sie Ihr Validierungsset niemals erweitern oder synthetisieren, da dies Ihr Beweis (Test) dafür ist, wie Ihr Modell lernt.
Dazu
7

Die zweite (2) Option ist der richtige Weg, dies zu tun. Die synthetischen Samples, die Sie mit den Oversampling-Techniken erstellen, sind keine echten Beispiele, sondern eher synthetisch. Diese sind nicht zu Testzwecken gültig, solange sie noch für das Training geeignet sind. Sie sollen das Verhalten des Klassifikators ändern, ohne den Algorithmus zu ändern.

user53909
quelle