In einer kürzlich gut erhaltenen Frage fragt Tim, wann unausgeglichene Daten wirklich ein Problem beim maschinellen Lernen sind . Die Prämisse der Frage ist, dass es eine Menge Literatur zum maschinellen Lernen gibt, die sich mit dem Klassengleichgewicht und dem Problem unausgeglichener Klassen befasst . Die Idee ist, dass Datensätze mit einem Ungleichgewicht zwischen der positiven und der negativen Klasse Probleme für einige Algorithmen der Klassifikation des maschinellen Lernens verursachen (ich beziehe hier probabilistische Modelle ein), und es sollten Methoden gesucht werden, um den Datensatz "auszugleichen" und die perfekte 50/50 wiederherzustellen Aufteilung zwischen positiven und negativen Klassen.
Der allgemeine Sinn der überstimmten Antworten ist, dass "es nicht ist, zumindest wenn Sie bei Ihrer Modellierung nachdenklich sind". In einem hochgestimmten Kommentar zu einer akzeptierten Antwort stellt Herr Henry L. fest
[...] es gibt kein geringes problem mit der verwendung unausgeglichener daten. Nach meiner Erfahrung ist der Ratschlag, "unausgeglichene Daten zu vermeiden", entweder algorithmenspezifisch oder ererbt. Ich stimme mit AdamO überein, dass unausgeglichene Daten für ein gut spezifiziertes Modell im Allgemeinen kein konzeptionelles Problem darstellen.
Adamo argumentiert , dass das „Problem“ mit Klassenbalance ist wirklich einer der Klasse Seltenheit
Daher besteht das einzige Problem mit unausgeglichenen Daten, zumindest bei der Regression (was ich jedoch unter allen Umständen vermute), darin, dass Sie effektiv eine kleine Stichprobengröße haben. Wenn eine Methode für die Anzahl der Personen in der selteneren Klasse geeignet ist, sollte es kein Problem geben, wenn ihre proportionale Mitgliedschaft unausgewogen ist.
Wenn dies das eigentliche Problem ist, bleibt die Frage offen: Welchen Zweck haben alle Resampling-Methoden, um den Datensatz auszugleichen: Oversampling, Undersampling, SMOTE usw.? Es ist klar, dass sie nicht das Problem einer impliziten kleinen Stichprobengröße ansprechen. Sie können keine Informationen aus dem Nichts erstellen!
quelle
Antworten:
Einige Stichprobentechniken dienen dazu, die Verzerrung auszugleichen (wenn die Bevölkerungsrate bekannt und unterschiedlich ist), aber ich stimme der Vorstellung zu, dass die unausgeglichene Klasse nicht das Problem selbst ist. Ein Hauptgrund ist die Verarbeitungsleistung. Wenn zum Beispiel unsere Zielklasse mit 1: 100000 ein äußerst seltener Fall ist, wäre unser Modellierungsdatensatz umfangreich und die Berechnung schwierig. Bei der Stichprobenerfassung werden unabhängig von der Strategie immer einige Daten verworfen, um die Gesamtgröße des Datasets zu verringern. Ich nehme an, der Unterschied zwischen den verschiedenen Stichprobenstrategien liegt in der Klugheit, welche Daten wir wegwerfen, ohne den Verlust an Vorhersagemöglichkeiten zu opfern.
quelle
Das Problem, das diese Methoden zu lösen versuchen, besteht darin, die Auswirkung der Minderheitenklasse auf die Kostenfunktion zu erhöhen. Dies liegt daran, dass Algen versuchen, den gesamten Datensatz gut anzupassen und sich dann an die Mehrheit anzupassen. Ein anderer Ansatz wäre die Verwendung von Klassengewichten, und dieser Ansatz liefert in den meisten Fällen bessere Ergebnisse, da es keinen Informationsverlust durch Unterabtastung oder Leistungsverlust und keine Einführung von Rauschen durch Überabtastung gibt.
quelle
Ich werde Ihnen ein extremeres Beispiel geben. Stellen Sie sich den Fall vor, dass Sie einen Datensatz mit 99 als positiv und nur mit einem als negativ gekennzeichneten Datenpunkt haben. Während des Trainings merkt Ihr Modell, dass es letztendlich davonkommt, wenn es alles als positiv einstuft. Eine Möglichkeit, dies zu beheben, besteht darin, die unterrepräsentierte Klasse über- und die überrepräsentierte Klasse unterzutasten. In einem Datensatz mit 70 positiven und 30 negativen Beschriftungen kann ich beispielsweise die negativen Beschriftungen mit ersetzenden und positiven Beschriftungen ohne Ersetzung abtasten, was dazu führt, dass mein Modell während des Trainings auf mehr negative Beschriftungen stößt. Wenn mein Modell versucht, alles als positiv zu klassifizieren, entsteht auf diese Weise ein größerer Verlust als sonst.
Ein weiterer Ansatz, der sich nicht auf die Stichprobe bezieht, besteht darin, die Kostenfunktion anzupassen, um den Datenpunkten mit dem Minderheitenlabel eine höhere Gewichtung zu verleihen. Wenn Sie beispielsweise einen NLL-Verlust in einem Dataset verwenden, in dem Einsen im Vergleich zu Nullen in Bezeichnungen überrepräsentiert sind, können Sie die Verlustfunktion folgendermaßen anpassen:
quelle
Ich werde der Annahme widersprechen, dass unausgeglichene Daten beim maschinellen Lernen kein Problem darstellen. Vielleicht weniger in der Regression, aber es ist sicherlich in der Klassifizierung.
Unausgeglichene Daten sind in Anwendungen des maschinellen Lernens relevant, da die Leistung von Algorithmen (die Forschung, an die ich denke, befasst sich speziell mit Klassifizierern) bei der Einstellung des Klassenungleichgewichts abnimmt.
Nehmen Sie ein einfaches binäres Klassifizierungsproblem mit einem Verhältnis von 25: 1 von Trainingsbeispielen der Klasse A 'gegenüber der Klasse B'. Untersuchungen haben gezeigt, dass die Genauigkeit bei der Klassifizierung der Klasse B allein aufgrund des verringerten Verhältnisses der Trainingsdaten einen Treffer erzielt. Es macht Sinn, je weniger Trainingsbeispiele Sie haben, desto schlechter trainiert Ihr Klassifikator diese Daten. Wie einer der Kommentatoren sagte, kann man nichts daraus machen. Aus den Arbeiten, die ich bei Klassifizierungsproblemen mit mehreren Klassen gesehen habe, geht hervor, dass Sie ein Verhältnis von 10: 1 erreichen müssen, um einen signifikanten Einfluss auf die Genauigkeit der Minderheitenklasse zu haben. Vielleicht haben Leute, die andere Literatur lesen als ich, andere Meinungen.
Die vorgeschlagenen Lösungen sind also: Überabtasten der Minderheitsklasse, Unterabtasten der Mehrheitsklasse oder Verwenden von SMOTE für die Minderheitsklasse. Ja, Sie können Daten nicht wirklich aus dem Nichts erstellen (SMOTE, aber nicht genau), es sei denn, Sie beschäftigen sich mit der Erstellung synthetischer Daten für die Minderheitsklasse (keine einfache Methode). Andere Techniken wie MixUp und dergleichen fallen möglicherweise in dieses Konzept, aber ich denke, dass sie mehr Regularisierer sind als Lösungen für Klassenungleichgewichte. In den Zeitungen habe ich Oversampling> SMOTE> Undersampling gelesen.
Unabhängig von Ihrer Technik ändern Sie das Verhältnis zwischen Mehrheits- und Minderheitsklassen, was sich auf die Inzidenz auswirken kann. Mit anderen Worten, wenn Sie einen Klassifikator zum Erkennen der super-seltenen Gehirnerkrankung X erstellen, die eine Häufigkeit von 1 zu 100.000 hat und bei dem Ihr Klassifikator 1: 1 ist, sind Sie möglicherweise empfindlicher und weniger spezifisch, wenn eine größere Anzahl von falsch positiven Befunden vorliegt . Wenn es wichtig ist, dass Sie diese Fälle und den Schiedsrichter später erkennen, sind Sie in Ordnung. Wenn nicht, haben Sie viel Zeit und Geld anderer Leute verschwendet. Dieses Problem muss eventuell behoben werden.
Um die Frage zu beantworten:
tl / dr: Es gibt Klassenausgleichsoperationen wie Over / Undersampling und SMOTE (und synthetische Daten), um die Leistung des maschinellen Lernalgorithmus (Klassifikator) zu verbessern, indem der inhärente Leistungseinbruch in einem Algorithmus behoben wird, der durch das Ungleichgewicht selbst verursacht wird .
quelle