Optimierung für Precision-Recall-Kurven bei Klassenungleichgewicht


30

Ich habe eine Klassifizierungsaufgabe mit einer Reihe von Prädiktoren (von denen einer der informativste ist), und ich verwende das MARS- Modell, um meinen Klassifizierer zu konstruieren (ich interessiere mich für ein einfaches Modell und würde glms zur Veranschaulichung verwenden) auch gut). Jetzt habe ich ein großes Klassenungleichgewicht in den Trainingsdaten (ungefähr 2700 negative Stichproben für jede positive Stichprobe). Ähnlich wie bei Information Retrieval-Aufgaben geht es mir eher darum, die besten positiven Testproben vorherzusagen. Aus diesem Grund ist mir die Leistung bei Precision Recall-Kurven wichtig.

Zunächst habe ich das Modell einfach anhand meiner Trainingsdaten trainiert, wobei das Klassenungleichgewicht beibehalten wurde. Ich visualisiere mein trainiertes Modell in Rot und die wichtigsten Eingaben in Blau.

Schulung zu unsymmetrischen Daten, Auswertung zu unsymmetrischen Daten :

PR für unausgewogenes Training ROC für unausgeglichenes Training

In der Annahme, dass das Klassenungleichgewicht das Modell aus dem Gleichgewicht bringt, habe ich die positiven Trainingspunkte hochgerechnet, um einen ausgeglichenen Trainingsdatensatz zu erhalten, da das Lernen der positivsten Stichproben ein winziger Teil des gesamten Datensatzes ist. Wenn ich die Leistung auf dem ausgewogenen Trainingsset aufzeichne, bekomme ich gute Leistung. Sowohl in der PR- als auch in der ROC-Kurve schneidet mein trainiertes Modell besser ab als die Eingaben.

Schulung zu (hochgerechneten) ausgeglichenen Daten, Auswertung auch zu (hochgerechneten) ausgeglichenen Daten:

PR für ausgewogenes Training, visualisiert auf einem ausgewogenen Datensatz ROC für ausgewogenes Training, dargestellt auf einem ausgewogenen Datensatz

Wenn ich jedoch dieses Modell verwende, das auf den ausgeglichenen Daten trainiert ist, um das ursprüngliche, nicht ausgeglichene Trainingsset vorherzusagen, erhalte ich immer noch eine schlechte Leistung auf der PR-Kurve.

Schulung zu (hochgerechneten) ausgeglichenen Daten, Auswertung zu ursprünglichen nicht ausgeglichenen Daten:

PR für ausgewogenes Training, visualisiert auf einem unausgeglichenen Originaldatensatz ROC für ein ausgeglichenes Training, visualisiert auf einem unausgeglichenen Originaldatensatz

Meine Fragen sind also:

  1. Zeigt die Visualisierung der PR-Kurve eine schlechtere Leistung meines trainierten Modells (rot), während die ROC-Kurve aufgrund des Klassenungleichgewichts Verbesserungen zeigt?
  2. Können Resampling / Upsampling / Downsampling-Ansätze dies beheben, um das Training zu zwingen, sich auf den Bereich mit hoher Präzision / geringem Rückruf zu konzentrieren?
  3. Gibt es eine andere Möglichkeit, das Training auf den Bereich mit hoher Präzision und geringem Rückruf zu konzentrieren?

Könnten Sie Ihre Frage bearbeiten, um zu klären, welche Maßnahmen auf dem Trainingssatz und welche auf den durchgehaltenen Daten berechnet werden?
Jack Tanner

@ JackTanner, alles wird fürs Erste auf dem Trainingssatz berechnet. Da das Modell nicht über so viele Parameter verfügt und die Anzahl der Samples im Trainingsset sehr groß ist, mache ich mir keine großen Sorgen über eine Überanpassung. Außerdem möchte ich sichergehen, dass ich auf dem Trainingssatz gute Leistungen erhalte, bevor ich im Testsatz einsteigen kann.
HighBandWidth

Welchen Knopf steuern Sie in Ihrem Lernalgorithmus, um die Genauigkeit bei verschiedenen Rückrufstufen zu bewerten? Haben Sie versucht, Ihr Feature-Set zu erweitern, z. B. um Feature-Kombinationen und Transformationen?
Jack Tanner

@ JackTanner, Das Modell, das ich habe (MARS mit Logit-Funktion) gibt Ausgaben im Bereich von 0 bis 1 aus, ähnlich wie bei der logistischen Regression. Es ist im Grunde das gleiche, enthält aber noch ein paar weitere Funktionen. Um bei verschiedenen Rückrufen Präzision zu erzielen, setze ich einfach die Schwellenwerte an verschiedenen Punkten. Ich benutze einfach die Standardmethode, um PR oder ROC aus einer Rangliste zu berechnen.
highBandWidth

Antworten:


15
  1. Die ROC-Kurve ist unempfindlich gegenüber Änderungen des Klassenungleichgewichts. siehe Fawcett (2004) "ROC Graphs: Hinweise und praktische Überlegungen für Forscher".
  2. Ein Upsampling der Niederfrequenzklasse ist ein vernünftiger Ansatz.
  3. Es gibt viele andere Möglichkeiten, mit dem Klassenungleichgewicht umzugehen. Boosting und Bagging sind zwei Techniken, die mir in den Sinn kommen. Dies scheint eine relevante aktuelle Studie zu sein: Vergleich von Boosting- und Bagging-Techniken mit verrauschten und unausgeglichenen Daten

PS Ordentliches Problem; Ich würde gerne wissen, wie es ausgeht.



1

Ich wollte darauf aufmerksam machen, dass die letzten beiden Experimente tatsächlich das gleiche Modell für den fast gleichen Datensatz verwenden. Der Leistungsunterschied ist kein Modellunterschied. Er erklärt sich aus den unterschiedlichen Verteilungen des Validierungsdatensatzes und den Eigenschaften bestimmter verwendeter METRICS - Präzision und Rückruf, die in hohem Maße von dieser Verteilung abhängen. Um diesen Punkt etwas genauer zu erläutern: Wenn Sie X verschiedene Einträge aus Ihrem anfänglichen Validierungsdatensatz übernommen und die Minderheitsklasse für den hochskalierten Datensatz repliziert haben, werden in Ihrem Modell die gleichen Vorhersagen für diese X-Einträge, richtig oder falsch, sowohl in hochskalierter als auch in unausgeglichener Form getroffen Validierungsdatensätze. Der einzige Unterschied besteht darin, dass für jedes falsche Positiv weniger echte Positive im ursprünglichen Datensatz (daher geringere Genauigkeit) und mehr echte Positive im ausgeglichenen Datensatz vorhanden sind (einfach aufgrund der Tatsache, dass der Datensatz im Allgemeinen mehr positive Beispiele enthält). . Aus diesem Grund sollen Präzision und Rückruf empfindlich gegen Schräglauf sein. Auf der anderen Seite ändert sich der ROC nicht, wie auch Ihre Experimente zeigen. Dies lässt sich auch anhand der Definition beobachten. Das ist der Grund, warum ROC angeblich nicht empfindlich gegen Schräglauf ist.

Ich habe noch keine guten Antworten für die Punkte 2 und 3, da ich selbst danach suche :)


0

Angenommen, die überabgetasteten positiven Proben haben die "gleiche Verteilung" wie im "Originalsatz". Mit zunehmender Anzahl positiver Proben treten nur wenige Änderungen auf

1) Die Anzahl von TruePositives (TP) erhöht sich für "alle Schwellen", und infolgedessen erhöhen sich die Verhältnisse TP / (TP + FP) und TP / (TP + FN) für alle Schwellen. Damit wächst die Fläche unter der VR China.

2) Die erwartete Präzision, auch Präzision des "dummen" Modells genannt, erhöht sich von ~ 1/2700 (im ursprünglichen Satz) auf ~ 1/2 (im Falle einer "idealen" Balance). Angenommen, Ihr Modell schneidet besser ab als das "dumme" Modell, bedeutet dies, dass die Fläche unter der Kurve im "ursprünglichen Satz" mehr als 0,00037 und im ideal ausgeglichenen Satz mehr als 0,5 beträgt.

3) Während des Trainings des Modells auf einem hochskalierten Datensatz können einige Modelle positive Proben "überpassen".

In Bezug auf ROC-Kurven ist bekannt, dass ROC-Kurven bei Variationen der Klassenverteilung nur geringe Auswirkungen haben (eine Hochskalierung wirkt sich nur sehr geringfügig auf die FPR aus, während Sie einige Auswirkungen auf die TPR feststellen können).

Im Hinblick auf die Fokussierung in einem Bereich mit hoher Präzision und geringem Wiederaufruf können Sie eine Kostenfunktion optimieren, bei der falsche Positive stärker als falsche Negative bestraft werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.