Ich bin neu im Data Mining und versuche, einen Entscheidungsbaum gegen einen Datensatz zu trainieren, der sehr unausgewogen ist. Ich habe jedoch Probleme mit der schlechten Vorhersagegenauigkeit.
Die Daten bestehen aus Studenten, die Kurse studieren, und die Klassenvariable ist der Kursstatus, der zwei Werte hat - Zurückgezogen oder Aktuell.
- Alter
- Ethnizität
- Geschlecht
- Natürlich
... - Kursstatus
In der Datenmenge gibt es viel mehr Instanzen, die aktuell als zurückgezogen sind. Zurückgezogene Instanzen machen nur 2% der Gesamtinstanzen aus.
Ich möchte in der Lage sein, ein Modell zu erstellen, das die Wahrscheinlichkeit vorhersagt, dass sich eine Person in Zukunft zurückzieht. Beim Testen des Modells anhand der Trainingsdaten ist die Genauigkeit des Modells jedoch schrecklich.
Ich hatte ähnliche Probleme mit Entscheidungsbäumen, bei denen die Daten von einer oder zwei Klassen dominiert werden.
Welchen Ansatz kann ich verwenden, um dieses Problem zu lösen und einen genaueren Klassifikator zu erstellen?
Antworten:
Dies ist ein interessantes und sehr häufiges Problem bei der Klassifizierung - nicht nur in Entscheidungsbäumen, sondern in praktisch allen Klassifizierungsalgorithmen.
Wie Sie empirisch gesehen haben, kann ein Trainingssatz, der aus einer unterschiedlichen Anzahl von Vertretern beider Klassen besteht, zu einem Klassifikator führen, der in Richtung der Mehrheitsklasse voreingenommen ist. Bei Anwendung auf einen Testsatz, der ähnlich unausgeglichen ist, liefert dieser Klassifizierer eine optimistische Genauigkeitsschätzung. Im Extremfall kann der Klassifikator jeden einzelnen Testfall der Mehrheitsklasse zuordnen, wodurch eine Genauigkeit erreicht wird, die dem Anteil der Testfälle entspricht, die zur Mehrheitsklasse gehören. Dies ist ein bekanntes Phänomen in der binären Klassifizierung (und erstreckt sich natürlich auch auf Einstellungen für mehrere Klassen).
Dies ist ein wichtiges Problem, da ein unausgeglichenes Dataset zu überhöhten Leistungsschätzungen führen kann. Dies kann wiederum zu falschen Schlussfolgerungen über die Signifikanz führen, mit der der Algorithmus besser als der Zufall abgeschnitten hat.
Die Literatur zum maschinellen Lernen zu diesem Thema hat im Wesentlichen drei Lösungsstrategien entwickelt.
Sie können Guthaben auf dem Trainingssatz wiederherstellen Unterabtastung die große Klasse oder durch Überabtasten die kleine Klasse, Vorspannung zu verhindern , dass in erster Linie entstehen.
Alternativ können Sie die Kosten für eine Fehlklassifizierung, wie in einer vorherigen Antwort erwähnt, erneut ändern, um eine Verzerrung zu vermeiden.
Eine zusätzliche Sicherung besteht darin, die Genauigkeit durch die sogenannte abgeglichene Genauigkeit zu ersetzen . Sie ist definiert als das arithmetische Mittel der klassenspezifischen Genauigkeiten wobei und stellen die Genauigkeit dar, die an positiven bzw. negativen Beispielen erhalten wurde. Wenn der Klassifikator in beiden Klassen gleich gut abschneidet, reduziert sich dieser Term auf die herkömmliche Genauigkeit (dh die Anzahl der korrekten Vorhersagen geteilt durch die Gesamtanzahl der Vorhersagen). Wenn dagegen die herkömmliche Genauigkeit nur deshalb über dem Zufall liegt , weil der Klassifikator einen unausgeglichenen Testsatz ausnutzt, fällt die ausgeglichene Genauigkeit gegebenenfalls auf den Zufall (siehe Skizze unten).π+π-ϕ:=12(π++π−), π+ π−
Ich würde empfehlen, mindestens zwei der oben genannten Ansätze in Verbindung zu betrachten. Sie könnten beispielsweise Ihre Minderheitsklasse überbemustern, um zu verhindern, dass Ihr Klassifikator eine Tendenz zugunsten der Mehrheitsklasse erhält. Anschließend können Sie bei der Bewertung der Leistung Ihres Klassifikators die Genauigkeit durch die ausgeglichene Genauigkeit ersetzen. Die beiden Ansätze ergänzen sich. Wenn sie zusammen angewendet werden, sollten sie Ihnen helfen, Ihr ursprüngliches Problem zu verhindern und falsche Schlussfolgerungen daraus zu vermeiden.
Gerne stelle ich Ihnen weitere Literaturhinweise zur Verfügung, wenn Sie dies weiter verfolgen möchten.
quelle
Die folgenden vier Ideen können Ihnen dabei helfen, dieses Problem zu lösen.
Wählen Sie ein geeignetes Leistungsmaß aus, und passen Sie dann die Hyperparameter Ihres Modells an (z. B. Regularisierung), um zufriedenstellende Ergebnisse im Cross-Validation-Dataset zu erzielen. Wenn Sie zufrieden sind, testen Sie Ihr Modell im Test-Dataset. Setzen Sie für diese Zwecke 15% Ihrer Daten für die Kreuzvalidierung und 15% für die Endprüfung ein. Eine etablierte Maßnahme des maschinellen Lernens, für die Andrews Ng plädiert, ist die F1-Statistik, die als . Versuchen Sie, diese Zahl im Cross-Validation-Dataset zu maximieren, und stellen Sie sicher, dass die Leistung auch im Test-Dataset stabil ist.2∗Precision∗RecallPrecision+Recall
Verwenden Sie den Parameter 'prior' in den Entscheidungsbäumen, um den Algorithmus über die vorherige Häufigkeit der Klassen im Datensatz zu informieren, dh, wenn ein Datensatz mit 1.000.000 Positiven
prior = c(0.001, 0.999)
(in R) 1.000.000 enthält .Verwenden Sie das Argument 'Wichtungen' in der Klassifizierungsfunktion, die Sie verwenden, um den Algorithmus für Fehlklassifizierungen der seltenen positiven Fälle schwerwiegend zu benachteiligen
Verwenden Sie das Argument 'cost' in einigen Klassifizierungsalgorithmen - z. B.
rpart
in R -, um die relativen Kosten für die Fehlklassifizierung von echten Positiven und echten Negativen zu definieren. Sie sollten natürlich hohe Kosten für die Fehlklassifizierung der seltenen Klasse ansetzen.Ich bin nicht für eine Überabtastung, da dies abhängige Beobachtungen in den Datensatz einführt und dies gegen die in Statistik und maschinellem Lernen getroffenen Annahmen der Unabhängigkeit verstößt.
quelle
Ich habe im letzten Thema eine Antwort gegeben :
Dies gibt nicht nur einen stabileren Ansatz, sondern die Modelle sind im Allgemeinen besser, was Maßnahmen in Bezug auf den Auftrieb anbelangt.
quelle
Hinzufügen zu @Kays Antwort 1. Lösungsstrategie: Synthetic Minority Oversampling ( SMOTE ) ist meiner Erfahrung nach in der Regel besser als Unter- oder Überabtastung, da es meiner Meinung nach einen Kompromiss zwischen beiden darstellt. Es werden synthetische Stichproben der Minderheitsklasse unter Verwendung der Datenpunkte erstellt, die im multivariaten Prädiktorraum aufgezeichnet sind, und es werden mehr oder weniger Mittelpunkte zwischen benachbarten Punkten in diesem Raum verwendet, um neue synthetische Punkte zu erstellen und somit beide Klassengrößen auszugleichen. (keine Ahnung von den Mittelpunkten, Details des Algorithmus hier
quelle