Welches Problem lösen Oversampling, Undersampling und SMOTE?


24

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!


Genau das hätte ich geändert ... danke. Es deckt nicht den gesamten Umfang Ihrer Frage ab, aber ein Titel muss nicht - es zeigt deutlich, worüber Sie nachfragen.
Glen_b

Es gibt sicherlich Situationen, in denen Bootstrap- und Subsampling-Methoden nützlich und manchmal besser sind als andere nichtparametrische Methoden. Bücher über Bootstrap und Subsampling decken dies ab. Es gibt Diskussionen auf dieser Site, die dies diskutieren, einschließlich der Überlegenheit des Bootstraps gegenüber dem Auslassen von Diskriminanzanalysen selbst bei relativ kleinen Stichproben. Es gibt sicherlich einige Situationen, in denen der Bootstrap fehlschlägt, und diese werden in meinem Buch ebenso erwähnt wie andere.
Michael R. Chernick

@MichaelChernick Ich spreche nicht über den Bootstrap, darum ging es in Glen. Ich spreche von "Klassenausgleich" -Ansätzen wie Über- und Unterabtastung, damit die positive zu der negativen Klasse in einem Datensatz gleichermaßen dargestellt wird.
Matthew Drury

Fügen Sie Unterabtastung hinzu? Beziehen Sie sich nur auf eine ungleiche Stichprobengröße? Wie allgemein äußern Sie sich?
Michael R. Chernick

@MichaelChernick Ich habe im ersten und letzten Absatz einige Erläuterungen hinzugefügt, ich hoffe, das hilft.
Matthew Drury

Antworten:


0

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.


4
Dies ist alles wahr, aber viele der Methoden, die ich diskutiere, erstellen größere Datensätze. Durch das Upsampling werden mehr Instanzen der positiven Klasse erstellt, indem vorhandene Datenpunkte kopiert werden, und SMOTE erstellt "synthetische" Datenpunkte der seltenen Klasse. Dies würde mit Sicherheit nicht zur Recheneffizienz beitragen.
Matthew Drury


0

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.


2
Ich verstehe deine Antwort nicht.
Michael R. Chernick

Ich habe gemeint, dass die Leistung des Klassifikators für den gesamten Datensatz bewertet wird (durchschnittlicher Fehler bei positiven und negativen Beispielen), wobei der Fehler für jedes Beispiel gleich gewichtet wird. Daher passt der Algorithmus (z. B. die logistische Regression) seine Hypothesenfunktion an Beispiele an, die die Fehlerreduzierung maximieren. In diesem Fall zur Majoritätsklasse, bei der die Minorität (negative Klasse) praktisch nicht berücksichtigt wird, da sie keinen großen Einfluss auf den Fehler im gesamten Datensatz hat. Dies ist der Grund, warum Überabtastung, Unterabtastung oder Klassengewichtung eine bessere Übernahme des Algorithmus in die Minderheitsklasse ermöglichen.
Milan Vukicevic

0

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:

L(xich~,yich)=-α(yich)ln(xich~)-β(1-yich)ln(1-xich~)

β>αβ-α


0

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 .

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.