Wie kann ein Klassenungleichgewicht in der Trainingsprobe behoben werden?

7

Ich wurde kürzlich in einem Vorstellungsgespräch nach Lösungen gefragt, um ein Ungleichgewicht der Klassen im Trainingsdatensatz zu beheben. Konzentrieren wir uns auf einen Fall der binären Klassifizierung.

Ich habe zwei Lösungen angeboten: Überabtastung der Minderheitsklasse durch Zuführung der ausgewogenen Datenstapel des Klassifikators oder Partitionierung der reichlich vorhandenen Klasse, um viele Klassifizierer mit einem ausgeglichenen Trainingssatz, einer eindeutigen Teilmenge des reichlich vorhandenen und demselben Satz der Minderheit zu trainieren. Die Interviewer nickten, aber ich wurde später abgeschnitten und eine der Wissenslücken, die sie erwähnten, war diese Antwort. Ich weiß jetzt, dass ich hätte diskutieren können, die Metrik geändert.

Aber die Frage, die mir jetzt in den Sinn kommt, ist: Ist es wirklich ein Problem, einen Klassifikator mit 80% Klasse A zu trainieren, wenn der Testsatz den gleichen Anteil hat? Die Faustregel des maschinellen Lernens scheint zu sein, dass der Trainingssatz den Tests für die beste Vorhersageleistung so ähnlich wie möglich sein muss.

Ist es nicht nur in den Fällen, in denen wir keine Ahnung (keine vorherige) von der Verteilung der Tests haben, dass wir die Klassen ausgleichen müssen? Vielleicht hätte ich diesen Punkt im Interview ansprechen sollen.

Lernen ist ein Chaos
quelle

Antworten:

4

Eigentlich ist das, was sie erwähnt haben, richtig. Die Idee des Oversamplings ist richtig und gehört im Allgemeinen zu den Resampling-Methoden, um dieses Problem zu lösen. Resampling kann durch Überabtastung der Minderheiten oder Unterabtastung der Mehrheiten erfolgen. Sie können sich den SMOTE- Algorithmus als eine gut etablierte Methode zum Resampling ansehen.

Aber zu Ihrer Hauptfrage: Nein, es geht nicht nur um die Konsistenz der Verteilungen zwischen Test und Zugset. Es ist ein bisschen mehr.

Stellen Sie sich, wie Sie bereits über Metriken erwähnt haben, die Genauigkeitsbewertung vor. Wenn ich ein binäres Klassifizierungsproblem mit 2 Klassen habe, einer 90% der Bevölkerung und der anderen 10%, kann ich ohne maschinelles Lernen sagen, dass meine Vorhersage immer die Mehrheitsklasse ist und ich eine Genauigkeit von 90% habe! Es funktioniert also einfach nicht, unabhängig von der Konsistenz zwischen Zugtestverteilungen. In solchen Fällen können Sie Präzision und Rückruf stärker berücksichtigen. Normalerweise möchten Sie einen Klassifikator haben, der den Mittelwert (normalerweise den harmonischen Mittelwert) von Präzision und Rückruf minimiert, dh die Fehlerrate ist dort, wo FP und FN ziemlich klein und nahe beieinander liegen.

Das harmonische Mittel wird anstelle des arithmetischen Mittels verwendet, da es die Bedingung unterstützt, dass diese Fehler so gleich wie möglich sind. Zum Beispiel, wenn Präzision ist1 und Rückruf ist 0 das arithmetische Mittel ist 0,5was die Realität in den Ergebnissen nicht veranschaulicht. Aber harmonisches Mittel ist0 was besagt, dass jedoch eine der Metriken gut ist, die andere ist super schlecht, so dass das Ergebnis im Allgemeinen nicht gut ist.

In der Praxis gibt es jedoch Situationen, in denen Sie die Fehler NICHT gleich halten möchten. Warum? Siehe das folgende Beispiel:

Ein zusätzlicher Punkt

Hier geht es nicht genau um Ihre Frage, kann aber zum Verständnis beitragen.

Geben Sie hier die Bildbeschreibung ein

In der Praxis können Sie einen Fehler opfern, um den anderen zu optimieren. Zum Beispiel könnte die Diagnose von HIV ein Fall sein (ich mache mir nur ein Beispiel vor). Es ist eine sehr unausgewogene Klassifizierung, da natürlich die Anzahl der Menschen ohne HIV dramatisch höher ist als die der Träger. Schauen wir uns nun die Fehler an:

Falsch positiv: Die Person hat kein HIV, aber der Test sagt, dass sie es hat.

Falsch negativ: Die Person hat zwar HIV, aber der Test sagt, dass dies nicht der Fall ist.

Wenn wir davon ausgehen, dass die falsche Aussage, dass er HIV hat, einfach zu einem anderen Test führt, können wir sehr darauf achten, dass wir nicht fälschlicherweise sagen, dass er kein Träger ist, da dies zur Verbreitung des Virus führen kann. Hier sollte Ihr Algorithmus für False Negative empfindlich sein und ihn viel stärker als False Positive bestrafen, dh gemäß der obigen Abbildung kann es zu einer höheren Rate an False Positive kommen.

Gleiches passiert, wenn Sie die Gesichter von Personen mit einer Kamera automatisch erkennen möchten, damit diese eine Website mit höchster Sicherheit betreten können. Es macht Ihnen nichts aus, wenn die Tür nicht einmal für jemanden geöffnet wird, der die Erlaubnis hat (False Negative), aber ich bin sicher, Sie möchten keinen Fremden hereinlassen! (Falsch positiv)

Hoffe es hat geholfen.

Kasra Manshaei
quelle
Vielen Dank für die ausführliche Antwort. Wenn ich es richtig mache und die Kosten für eine Fehlklassifizierung gleich sind cost(false positive) = cost(false negative), kann ich die Genauigkeit verwenden, da Metrik und Neuausgleich nur durchgeführt werden sollten, um der Verteilung der Testprobe zu entsprechen. Ist das richtig?
Lernen ist ein Chaos
1
Ich bin froh, dass es geholfen hat :) Resampling (Neuausrichtung) ist der Weg, um diese Fehler ziemlich klein zu halten. Du hast es irgendwie anders herum gesehen. Wenn Ihre Klassen ausgeglichen sind, erhalten Sie eine bessere Präzision und Rückruf. Und zur Verteilung: Normalerweise wird beim maschinellen Lernen davon ausgegangen, dass Zug und Test aus ähnlichen Verteilungen stammen. Nehmen Sie sich also nicht viel Zeit dafür. Die Situation, in der sie nicht ähnlich sind, ist ein Zweig des maschinellen Lernens, der "Domänenanpassung" oder "Transferlernen" genannt wird
Kasra Manshaei
1

Auf Ihre Frage "Ist es wirklich ein Problem, einen Klassifikator mit 80% Klasse A zu trainieren, wenn der Testsatz den gleichen Anteil hat?" Lautet die Antwort "Es hängt von den Kosten für Fehlklassifizierungen ab", aber normalerweise ist es sicherlich ein Problem , weil Ihr Klassifikator voreingenommen ist, um eine Person unabhängig von den Werten ihrer Merkmale in die überrepräsentierte Klasse zu klassifizieren, da dies im Durchschnitt die Chancen auf eine korrekte Klassifizierung während des Trainings erhöht.

Es gibt verschiedene Über- und Unterabtaststrategien . Das vielleicht beliebteste ist SMOTE (Synthetic Minority Over-Sampling Technique), das synthetische Trainingsdaten basierend auf k-nächsten Nachbarn erstellt.

ncasas
quelle