Kurzanleitung zum Trainieren stark unausgeglichener Datensätze

29

Ich habe ein Klassifizierungsproblem mit ungefähr 1000 positiven und 10000 negativen Proben im Trainingssatz. Dieser Datensatz ist also ziemlich unausgeglichen. Normaler Zufallswald versucht nur, alle Testproben als Mehrheitsklasse zu markieren.

Hier finden Sie einige gute Antworten zu Unterabtastungen und gewichteten Zufallsforsten: Was bedeutet es, ein Tree Ensemble mit stark voreingenommenen Datensätzen zu trainieren?

Welche Klassifizierungsmethoden neben RF können das Problem am besten bewältigen?

IharS
quelle
Siehe auch stats.stackexchange.com/q/247871/232706
Ben Reiniger

Antworten:

19
  • Max Kuhn behandelt dies in Kapitel 16 von Applied Predictive Modeling .
  • Wie im verlinkten Thread erwähnt, sind unausgewogene Daten im Wesentlichen ein kostensensitives Trainingsproblem. Somit ist jeder kostensensitive Ansatz auf unausgeglichene Daten anwendbar.
  • Es gibt eine Vielzahl solcher Ansätze. Nicht alle in R: C50 implementierten, gewichteten SVMs sind Optionen. Jous-Boost. Rusboost ist meiner Meinung nach nur als Matlab-Code verfügbar.
  • Ich benutze Weka nicht, glaube aber, dass es eine große Anzahl von kostensensitiven Klassifikatoren gibt.
  • Umgang mit unausgeglichenen Datensätzen: Eine Übersicht : Sotiris Kotsiantis, Dimitris Kanellopoulos, Panayiotis Pintelas
  • Zum Klassenungleichgewichtsproblem: Xinjian Guo, Yilong Yin, Cailing Dong, Gongping Yang, Guangtong Zhou
Charles
quelle
16

Unterabtastung der Mehrheitsklasse ist in solchen Situationen normalerweise der richtige Weg.

Wenn Sie der Meinung sind, dass Sie zu wenige Instanzen der positiven Klasse haben, können Sie eine Überabtastung durchführen, z. B. 5n-Instanzen mit Ersetzung aus dem Datensatz der Größe n.

Vorsichtsmaßnahmen:

  • Einige Methoden reagieren möglicherweise empfindlich auf Änderungen in der Klassenverteilung, z. B. für Naive Bayes - dies wirkt sich auf die vorherigen Wahrscheinlichkeiten aus.
  • Überabtastung kann zu Überanpassung führen
Alexey Grigorev
quelle
Oder versuchen Sie es mit einem Cluster-Algorithmus und verwenden Sie die Cluster-Zentren?
Leela Prabhu
Sie können diesen Link auf Überabtastung und andere Methoden prüfen , um mit unausgeglichenen Datensätzen umzugehen.
Janpreet Singh
11

Gradient Boosting ist auch hier eine gute Wahl. Sie können den Gradientenverstärkungsklassifikator beispielsweise in sci-kit learn verwenden. Gradient Boosting ist eine prinzipielle Methode, um mit dem Klassenungleichgewicht umzugehen, indem aufeinanderfolgende Trainingssätze basierend auf falsch klassifizierten Beispielen erstellt werden.

Cwharland
quelle
1
Meines Wissens
charles
1
Boosting ist ein zusätzlicher Schritt beim Aufbau eines Waldes, der das Ungleichgewicht direkt behebt. Das von Ihnen verknüpfte Papier vermerkt dies in der Einführung, die Auffrischung hilft, auch in Fällen, in denen es kein Ungleichgewicht gibt. Und das Papier Fazit Boosting hilft erheblich. Sie sind sich also nicht sicher, wo die Entsprechung zwischen Hochfrequenz und Boosting angezeigt wird?
Cwharland
1

Wenn zusätzlich zu den hier angegebenen Antworten die Anzahl der positiven Beispiele im Vergleich zu den negativen Beispielen viel zu gering ist, handelt es sich fast um ein Anomalieerkennungsproblem, bei dem die positiven Beispiele die Anomalien sind.

Sie haben eine ganze Reihe von Methoden zum Erkennen von Anomalien, angefangen bei der Verwendung der multivariaten Gaußschen Verteilung, um alle Punkte zu modellieren und dann diejenigen auszuwählen, die 2 oder 3 Std. Vom Mittelwert entfernt sind.

Noch ein Grund zum Nachdenken - ich habe einige Leute gesehen, die die negativen Beispiele mit mehr Beispielen zufällig ausgewählt haben, so dass beide Klassen in der Anzahl gleich sind. Es hängt ganz vom jeweiligen Problem ab, ob wir wollen, dass sie ausgeglichen sind oder nicht.

RAM
quelle