Wann sollte ich Klassen in einem Trainingsdatensatz ausgleichen?

Ich hatte einen Online-Kurs, in dem ich erfuhr, dass unausgeglichene Klassen in den Trainingsdaten zu Problemen führen können, da Klassifizierungsalgorithmen für die Mehrheitsregel gelten es gibt gute Ergebnisse, wenn die Unwucht zu groß ist. In einer Aufgabe musste man die Daten durch Unterabtastung der Mehrheitsklasse ausgleichen.

In diesem Blog behauptet jedoch jemand, dass ausgeglichene Daten noch schlechter sind:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

Also welches ist es? Soll ich die Daten ausgleichen oder nicht? Kommt es auf den verwendeten Algorithmus an, da einige möglicherweise in der Lage sind, sich auf die unausgeglichenen Proportionen von Klassen einzustellen? Wenn ja, welche sind bei unausgeglichenen Daten zuverlässig?

Antwort

Die intuitive Argumentation wurde im Blogpost erläutert:

Wenn unser Ziel die Vorhersage ist, führt dies zu einer eindeutigen Verzerrung. Schlimmer noch, es wird eine permanente Verzerrung sein, in dem Sinne, dass wir mit zunehmender Stichprobengröße keine konsistenten Schätzungen haben werden.

Das Problem der (künstlich) ausgeglichenen Daten ist also wahrscheinlich schlimmer als der unausgeglichene Fall .

Ausgewogene Daten eignen sich gut für die Klassifizierung, aber Sie verlieren offensichtlich Informationen über die Häufigkeit des Erscheinungsbilds, was sich auf die Genauigkeitsmetriken selbst sowie auf die Produktionsleistung auswirkt

Nehmen wir an, Sie erkennen handgeschriebene Buchstaben aus dem englischen Alphabet (26 Buchstaben). Wenn Sie das Erscheinungsbild jedes Buchstabens überbalancieren, wird jeder Buchstabe mit einer Wahrscheinlichkeit (korrekt oder nicht) ungefähr 1/26 klassifiziert, sodass der Klassifizierer die tatsächliche Verteilung der Buchstaben in der ursprünglichen Stichprobe vergisst. Und es ist ok , wenn der Klassifizierer jeden Buchstaben mit hoher Genauigkeit verallgemeinern und erkennen kann .

Aber wenn die Genauigkeit und vor allem die Verallgemeinerung nicht so hoch ist (ich kann Ihnen keine Definition geben – Sie können es sich nur als „schlimmsten Fall“ vorstellen) – werden die falsch klassifizierten Punkte am meisten -verteilt wahrscheinlich gleichmäßig auf alle Buchstaben, so etwas wie:

"A" was misclassified 10 times "B" was misclassified 10 times "C" was misclassified 11 times "D" was misclassified 10 times ...and so on 

Im Gegensatz zu ohne Ausgleich (unter der Annahme, dass „A“ und „C“ viel höhere Wahrscheinlichkeiten von haben Erscheinung im Text)

"A" was misclassified 3 times "B" was misclassified 14 times "C" was misclassified 3 times "D" was misclassified 14 times ...and so on 

So werden häufige Fälle weniger Fehlklassifizierungen erhalten. Ob es gut ist oder nicht, hängt von Ihrer Aufgabe ab. Für die natürliche Texterkennung könnte man argumentieren, dass Buchstaben mit höheren Frequenzen praktikabler sind, da sie die Semantik des Originaltextes beibehalten und die Erkennungsaufgabe näher an die Vorhersage bringen würden (wobei die Semantik darstellt Tendenzen ). Wenn Sie jedoch versuchen, einen Screenshot von ECDSA-Schlüssel (mehr Entropie -> weniger Vorhersage) zu erkennen, hilft es nicht, die Daten unausgeglichen zu halten. Es kommt also wieder darauf an.

Der wichtigste Unterschied besteht darin, dass die Genauigkeitsschätzung selbst verzerrt wird (wie Sie im Beispiel für ein ausgeglichenes Alphabet sehen können), sodass Sie nicht wissen, wie das Verhalten des Modells von den seltensten oder häufigsten Punkten beeinflusst wird.

PS Sie können die Leistung einer unausgeglichenen Klassifizierung jederzeit mit Precision / Recall -Metriken first verfolgen und entscheiden, ob Sie einen Ausgleich hinzufügen müssen oder nicht.


BEARBEITEN : Es gibt zusätzliche Verwirrung in Schätzungstheorie genau in der Differenz zwischen Stichprobenmittelwert und Populationsmittelwert. Zum Beispiel könnten Sie (wohl) die tatsächliche Verteilung englischer Buchstaben im Alphabet $ p (x_i | \ theta) $ kennen, Ihre Stichprobe (Trainingssatz) jedoch nicht groß genug, um es richtig zu schätzen (mit $ p (x_i | \ hat \ theta) $ ). Um einen $ \ hat \ theta_i – \ theta_i $ zu kompensieren, wird manchmal empfohlen, die Klassen entweder nach der Grundgesamtheit selbst oder nach den aus bekannten Parametern neu auszugleichen eine größere Stichprobe (also besserer Schätzer). In der Praxis gibt es jedoch keine Garantie dafür, dass „größere Stichprobe“ identisch verteilt ist, da das Risiko besteht, dass bei jedem Schritt voreingenommene Daten erhalten werden (sagen wir, englische Briefe aus der Fachliteratur im Vergleich zur Fiktion im Vergleich zur gesamten Bibliothek), sodass das Abwägen immer noch schädlich sein kann

Diese Antwort sollte auch die Anwendbarkeitskriterien für den Ausgleich klarstellen:

Das Problem des Klassenungleichgewichts wird dadurch verursacht, dass nicht genügend Muster zur Minderheitsklasse gehören, nicht durch das Verhältnis von positiven und negativen Mustern an sich.Im Allgemeinen Wenn Sie über genügend Daten verfügen, tritt das „Klassenungleichgewichtsproblem“ nicht auf.

Zusammenfassend ist künstliches Balancieren selten nützlich, wenn der Trainingssatz groß genug ist. Keine statistischen Daten von einem größeren identisch verteilten zeigt auch an, dass kein künstlicher Ausgleich erforderlich ist (insbesondere für die Vorhersage), andernfalls ist die Qualität des Schätzers so gut wie „Wahrscheinlichkeit, einen Dinosaurier zu treffen“:

Wie hoch ist die Wahrscheinlichkeit, einen Dinosaurier auf der Straße zu treffen?

1/2 Sie treffen entweder einen Dinosaurier oder Sie treffen keinen Dinosaurier

Kommentare

  • Ich denke, neben der Erklärung des Problems ist der wichtige Aspekt dieser Antwort, dass man sollte Versuchen Sie zuerst das Unwuchten und überprüfen Sie die Ergebnisse. Führen Sie das Balancieren und das Ergebnis nur bei Bedarf durch. +1
  • Mit anderen Worten, mit gleichmäßig verteilten Klassen auf die Trainingsuntermenge verliert das Modell seine Genauigkeit in unsichtbaren Daten, oder? Im umgekehrten Fall, in dem Sie versuchen, Einträge eines Datensatzes für Ihre Trainings- / Test-Teilmengen zufällig zu extrahieren, wird Ihr Klassifikator dann eine bessere Leistung erzielen?
  • @ChristosK. Wie viele sagten, ist es schwierig, über die Vorhersage nachzudenken, wenn Sie das Problem als Klassifizierung betrachten. Wenn Sie die Verzerrung entfernen (Stichprobe „zufällig“), benötigen Sie in jedem Fall eine größere Stichprobe, um die Leistung zu verbessern. Es ist nur „normalerweise“ eine Stichprobe, die groß genug ist, um die Semantik beizubehalten. Ein Überbalancieren würde also nur weh tun und wie ein regulierender Hammer wirken, der alles ohne angemessene Berücksichtigung „abflacht“. Wie aus der Dinosaurier-Metapher hervorgeht, bedeutet „ausgeglichen“ nicht „gerade“ – Sie führen nur dann einen ordnungsgemäßen Ausgleich durch, wenn Sie wissen, dass einige Wahrscheinlichkeiten in einer „zufälligen“ Stichprobe falsch dargestellt sind.
  • @ChristosK. Vielen Dank für einige Klarstellungen. Es ist nicht dasselbe, was ich gemeint habe, aber der Ansatz ist sehr ähnlich. Die übliche Empfehlung für die Anwendbarkeit von k-fold ist, dies zu tun, wenn Ihre erste Probe „ein bisschen klein“ ist. Ich bin mir nicht sicher, aber das Falten sollte sowieso nicht schaden – es dauert nur mehr Läufe und je weniger Sie sich für die Vorhersage interessieren, desto weniger interessieren Sie sich für die Verallgemeinerung / Leistung, so tautologisch es klingt :). Aber insgesamt bedeutet k-fach im Wesentlichen weniger Verzerrung.
  • @ChristosK. Oh, und als Warnung könnte das Spam / Nicht-Spam-Verhältnis eine instationäre Zufallsvariable für sich sein. Bei all diesen „falschen Nachrichten“, „russischen Trollen“ und anderen Dingen würde ich mit solchen Annahmen vorsichtig sein – das Verhältnis könnte auch voreingenommen sein. Möglicherweise möchten Sie PrecisionRecall zuerst für Ihre Klassifizierer schätzen, wenn etwas unterabgetastet ist. Ich möchte lieber mehr Daten sammeln / generieren (?).

Antwort

In Übereinstimmung mit dem Kommentar von @ kjetil-b-halvorsen hat die rasche Einführung des maschinellen Lernens die Forscher hinsichtlich Vorhersage und Klassifizierung verwirrt. Wie ich ausführlicher beschrieben habe hier ist die Klassifizierung nur in wenigen Fällen angemessen. Wenn das Ergebnis selten (oder zu häufig) ist, sind Wahrscheinlichkeiten alles , da dies in diesem Fall möglich ist Sprechen Sie nur vernünftigerweise über Tendenzen und nicht über die Vorhersage einzelner Ereignisse.

In der Statistik haben wir vor einiger Zeit erfahren, dass jede Methode, bei der einige Daten ausgeschlossen werden müssen, höchst verdächtig ist. Das Ziel, die Ergebnisse auszugleichen, ist also falsch. Die Vorhersage von Tendenzen (Wahrscheinlichkeiten) erfordert dies nicht. Sobald Sie eine Wahrscheinlichkeit geschätzt haben, können Sie eine optimale Entscheidung treffen, indem Sie th anwenden Die Nutzen- / Kosten- / Verlustfunktion für das vorhergesagte Risiko.

Antwort

Hängt davon ab, was Sie mit der Klassifizierung erreichen möchten?

Angenommen, es handelt sich um Krebs gegen Krebs, dann ist die Erkennung von Krebs von entscheidender Bedeutung. Da jedoch Nicht-Krebs einen Großteil Ihrer Daten ausmacht, kann der Klassifizierer im Wesentlichen alle Fälle an Nicht-Krebs-Klassen senden und eine sehr hohe Genauigkeit erzielen. Aber wir können uns das nicht leisten, also reduzieren wir im Wesentlichen Stichproben von Nichtkrebsfällen und verschieben im Wesentlichen die Entscheidungsgrenze von der Krebsregion in die Nichtkrebsregion.

Selbst in Anwendungsfällen, in denen Genauigkeit unsere einzige ist Ziel ist das Ausbalancieren von entscheidender Bedeutung, wenn erwartet wird, dass sich das Gleichgewicht der Testzeit von der Zugzeit unterscheidet.

Wenn Sie beispielsweise Mangos und Orangen klassifizieren möchten, haben Sie einen Trainingsdatensatz mit 900 Mangos und 30 Orangen. Sie erwarten jedoch, dass es auf einem Markt mit gleichen Mangos und Orangen eingesetzt wird. Idealerweise sollten Sie das erwartete Stichprobenverhältnis verwenden, um die Genauigkeit zu maximieren.

Kommentare

  • Das habe ich aus den Vorträgen verstanden, die ich hatte. Allerdings verstehe ich ‚ nicht, wann das Balancieren schlecht sein kann, wie dieser Blog-Beitrag andeutet. Warum sollte es jemals schlecht sein? Gleichgewicht, wenn für jede Klasse noch genügend Datenpunkte vorhanden sind?
  • Entschuldigung, aber in Ihrer Analogie, was hat die Marktfruchtverteilung mit Modell ac zu tun? Kuratie?Sie haben entweder gelernt, Mangos von Orangen zu trennen oder nicht. Mit anderen Worten, Sie sollten in der Lage sein, dasselbe Modell auf einem Markt nur für Orange oder nur für Mangos einzusetzen.
  • Das Problem mit dem Krebsbeispiel ist jedoch, dass Betrachten Sie es als Klassifizierung , sollte es als Risikoschätzung behandelt werden. Dann verschwindet das offensichtliche Problem mit unausgeglichenen Klassen, siehe stats.stackexchange.com/questions/127042/…

Antwort

Wenn Ihre Daten ausgeglichen sind, können Sie es vorziehen, die Genauigkeit der Metrik zu überprüfen. In einer solchen Situation sind Ihre Daten jedoch nicht ausgeglichen. Ihre Genauigkeit ist für verschiedene Iterationen nicht konsistent. Sie müssen mehr Metriken wie Präzision (PPR), Rückruf (Empfindlichkeit) konzentrieren. Diese beiden Metriken sollten beim Vergleich ausgeglichen sein. Außerdem sollten Sie den F1-Score überprüfen müssen, der das harmonische Mittel der Präzision und des Rückrufs darstellt. Dies gilt für alle Algorithmen für maschinelles Lernen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.