Warum Downsampling?

42

Angenommen, ich möchte einen Klassifikator lernen, der vorhersagt, ob es sich bei einer E-Mail um Spam handelt. Angenommen, nur 1% der E-Mails sind Spam.

Am einfachsten ist es, den einfachen Klassifikator zu erlernen, der besagt, dass es sich bei keiner der E-Mails um Spam handelt. Dieser Klassifikator würde eine Genauigkeit von 99% liefern, aber nichts Interessantes erfahren und eine 100% ige Rate von falschen Negativen aufweisen.

Um dieses Problem zu lösen, haben mich die Leute gebeten, ein "Downsample" durchzuführen oder anhand einer Teilmenge der Daten zu lernen, bei denen 50% der Beispiele Spam und 50% kein Spam sind.

Aber ich mache mir Sorgen um diesen Ansatz, da wir, sobald wir diesen Klassifikator erstellt haben und ihn auf einem echten Korpus von E-Mails verwenden (im Gegensatz zu einem 50/50 Testsatz), möglicherweise vorhersagen, dass viele E-Mails Spam sind, wenn sie " Wirklich nicht. Nur weil es daran gewöhnt ist, viel mehr Spam zu sehen, als der Datensatz tatsächlich enthält.

Wie können wir dieses Problem beheben?

("Upsampling" oder mehrmaliges Wiederholen der positiven Trainingsbeispiele, sodass 50% der Daten positive Trainingsbeispiele sind, scheint unter ähnlichen Problemen zu leiden.)

Jessica
quelle

Antworten:

37

Tatsächlich liefern die meisten Klassifizierungsmodelle keine binäre Entscheidung, sondern einen kontinuierlichen Entscheidungswert (z. B. geben logistische Regressionsmodelle eine Wahrscheinlichkeit aus, SVMs eine vorzeichenbehaftete Entfernung zur Hyperebene, ...). Mit Hilfe der Entscheidungswert können wir ordnen Testproben, von ‚fast sicher positiv‘ auf ‚ an Sicherheit grenzender Wahrscheinlichkeit negativ‘.

Auf der Grundlage des Entscheidungswerts können Sie immer einen Grenzwert zuweisen, der den Klassifizierer so konfiguriert, dass ein bestimmter Teil der Daten als positiv gekennzeichnet wird. Die Bestimmung eines geeigneten Schwellenwerts kann über die ROC- oder PR-Kurven des Modells erfolgen . Sie können mit der Entscheidungsschwelle spielen, unabhängig von dem im Trainingsset verwendeten Guthaben. Mit anderen Worten, Techniken wie Aufwärts- oder Abwärtsabtasten sind dazu orthogonal.

Unter der Annahme, dass das Modell besser als zufällig ist, können Sie intuitiv erkennen, dass eine Erhöhung des Schwellenwerts für die positive Klassifizierung (was zu weniger positiven Vorhersagen führt) die Genauigkeit des Modells auf Kosten eines geringeren Abrufs erhöht und umgekehrt.

Betrachten Sie SVM als ein intuitives Beispiel: Die größte Herausforderung besteht darin, die Ausrichtung der trennenden Hyperebene zu lernen . Hier kann Up- oder Downsampling helfen (ich empfehle, Upsampling gegenüber Downsampling vorzuziehen). Wenn die Orientierung der Hyperebene gut ist, können wir mit der Entscheidungsschwelle (z. B. vorzeichenbehafteter Abstand zur Hyperebene) spielen, um einen gewünschten Bruchteil positiver Vorhersagen zu erhalten.

Marc Claesen
quelle
Danke, das war sehr hilfreich. Woher wissen Sie, wie hoch die Schwelle sein sollte? Möchten Sie den Schwellenwert so festlegen, dass der Anteil positiver Vorhersagen dem Anteil positiver Beispiele in der Bevölkerung entspricht?
Jessica
2
@Jessica Wie bereits erwähnt, können Sie die Schwelle bequem über ROC-Kurven (Receiver Operating Characteristic) auswählen. Jeder Schwellenwert entspricht einem Punkt im ROC-Raum. Wenn Sie die Kurve zeichnen, können Sie einen Schwellenwert auswählen, der Ihren spezifischen Anforderungen entspricht. (Sie könnten auch Präzisionsrückrufkurven als Alternative verwenden)
Marc Claesen
Ich stimme nicht zu, dass die Entfernung eines Testpunkts zur Hyperebene, die von einer SVM ermittelt wurde, ein Vertrauensmaß für die Vorhersage darstellt. Es wurden Anstrengungen unternommen, um die Zuverlässigkeit der SVM-Ausgabevorhersage zu gewährleisten. Schlagen Sie zum Beispiel Platt-Skalierung nach. Aber es funktioniert nicht so gut wie die Gaußsche Prozessklassifizierung (bezüglich des Vorhersagegewissens).
Seeda
1
Bei der Skalierung von @Seeda Platt geht es darum, Entscheidungswerte für den Schuh in Wahrscheinlichkeiten umzuwandeln. Platt-Skalierung ist so einfach wie das Durchlaufen (skalierter) Entscheidungswerte durch die logistische Funktion, die monoton ansteigt und daher keinerlei Auswirkungen auf das Ranking hat (= Vertrauen). Es wird lediglich die Ausgabe von auf . [ 0 , 1 ]R[0,1]
Marc Claesen
@MarcClaesen Ich schlage nicht vor, Platt-Skalierung zu verwenden; Es ist ein "Versuch", Vorhersagevertrauen zu erzeugen, aber es gibt bessere Alternativen. Ich sage nur, dass es nicht sinnvoll ist, die Entfernung zur Hyperebene zu nutzen und die Literatur zu überprüfen. Ich bin nie auf sie gestoßen, obwohl es das erste ist, was einem einfällt, wenn man versucht, aus einer SVM Vertraulichkeit zu generieren.
Seeda,
14

Das eigentliche Problem hierbei ist Ihre Auswahl der Metrik: Die prozentuale Genauigkeit ist ein schlechtes Maß für den Erfolg eines Modells in einem unausgeglichenen Dataset (genau aus dem Grund, den Sie erwähnen: In diesem Fall ist es trivial, eine Genauigkeit von 99% zu erreichen).

Das Ausbalancieren Ihres Datensatzes vor dem Anpassen des Modells ist eine schlechte Lösung, da Ihr Modell dadurch vorgespannt wird und (noch schlimmer) potenziell nützliche Daten ausgegeben werden.

Sie sind viel besser dran, Ihre Genauigkeitsmetrik auszugleichen, als Ihre Daten auszugleichen. Zum Beispiel könnten Sie verwenden ausgewogene Genauigkeit bei der Auswertung Sie modellieren: (error for the positive class + error for the negative class)/2. Wenn Sie alles Positive oder alles Negative vorhersagen, ist diese Metrik 50%eine nette Eigenschaft.

Meiner Meinung nach ist der einzige Grund für die Stichprobenreduzierung, dass Sie zu viele Daten haben und nicht zu Ihrem Modell passen. Viele Klassifikatoren (z. B. logistische Regression) eignen sich gut für unausgeglichene Daten.

Zach
quelle
Kann ich fragen, wie Klassifikatoren mit unausgeglichenen Daten umgehen können? Vielleicht sind es nur meine Daten, aber ich habe versucht, die logistische Regression, zufällige Gesamtstrukturen und C5.0-Modelle für meine Trainingsdaten zu trainieren, die mit gemischten Über- / Unterabtastungen sowohl unausgewogen als auch ausgeglichen sind. Die Modelle, die mit den unausgeglichenen Daten trainiert wurden, schneiden in meinem Testset weit schlechter ab als die Modelle, die mit den unausgeglichenen Daten trainiert wurden.
Seanosapien
13

Wie immer @Marc Claeseneine tolle Antwort.

Ich möchte nur hinzufügen, dass das Schlüsselkonzept, das zu fehlen scheint, das Konzept einer Kostenfunktion ist . In jedem Modell gibt es implizite oder explizite Kosten für falsch negative zu falsch positiven Ergebnissen (FN / FP). Für die beschriebenen unausgeglichenen Daten ist man oft bereit, ein Verhältnis von 5: 1 oder 10: 1 zu haben. Es gibt viele Möglichkeiten, Kostenfunktionen in Modelle einzufügen. Eine traditionelle Methode besteht darin, den Wahrscheinlichkeiten eines Modells eine Wahrscheinlichkeitsbeschränkung aufzuerlegen - dies eignet sich gut für die logistische Regression.

Eine Methode, die für strenge Klassifikatoren verwendet wird, die auf natürliche Weise keine Wahrscheinlichkeitsschätzungen ausgeben, besteht darin, die Mehrheitsklasse in einem Verhältnis zu unterabtasten, das die Kostenfunktion induziert, an der Sie interessiert sind. Die Kostenfunktion ist unterschiedlich, aber genauso willkürlich, als ob Sie mit der Prävalenzrate abgetastet hätten. Sie können oft ein geeignetes Stichprobenverhältnis vorhersagen, das Ihrer Kostenfunktion entspricht (normalerweise nicht 50/50), aber die meisten Praktiker, mit denen ich gesprochen habe, probieren einfach ein paar Stichprobenverhältnisse aus und wählen dasjenige, das ihrer Kostenfunktion am nächsten kommt.

Charles
quelle
2
Danke, dass du das angesprochen hast, das ist eine interessante Idee, die ich nicht in Betracht gezogen hatte. Wie können Sie feststellen, welches Stichprobenverhältnis Ihrer Kostenfunktion entspricht?
Jessica
8

Direkte Beantwortung von Jessicas Frage - Ein Grund für ein Downsampling ist, wenn Sie mit einem großen Dataset arbeiten und Speicherbeschränkungen auf Ihrem Computer haben oder einfach nur die Verarbeitungszeit verkürzen möchten. Durch das Downsampling (dh das Entnehmen einer ersatzlosen Zufallsstichprobe) aus den Negativfällen wird der Datensatz auf eine handlichere Größe reduziert.

Sie haben in Ihrer Frage die Verwendung eines "Klassifikators" erwähnt, aber keinen angegeben. Ein Klassifikator, den Sie vermeiden möchten, sind Entscheidungsbäume. Beim Ausführen eines einfachen Entscheidungsbaums für seltene Ereignisdaten stelle ich häufig fest, dass der Baum nur eine einzige Wurzel bildet, da es schwierig ist, so wenige positive Fälle in Kategorien aufzuteilen. Möglicherweise gibt es ausgefeiltere Methoden, um die Leistung von Bäumen bei seltenen Ereignissen zu verbessern - ich kenne keine von oben.

Daher ist die Verwendung einer logistischen Regression, die einen kontinuierlichen vorhergesagten Wahrscheinlichkeitswert zurückgibt, wie von Marc Claesen vorgeschlagen, ein besserer Ansatz. Wenn Sie eine logistische Regression für die Daten durchführen, bleiben die Koeffizienten unvoreingenommen, obwohl weniger Datensätze vorhanden sind. Sie müssen den Achsenabschnitt von Ihrer heruntergerechneten Regression nach der Formel von Hosmer und Lemeshow, 2000 , anpassen :β0

βc=β0log(p+1p+)

Dabei ist der Anteil der positiven Fälle in Ihrer Population vor dem Downsampling.p+

Um den Schwellenwert für Ihre bevorzugte Spam-ID mit dem ROC zu ermitteln, können Sie zunächst den gesamten Datensatz mit den Modellkoeffizienten bewerten, die für den heruntergerechneten Datensatz ermittelt wurden, und dann die Datensätze von der höchsten bis zur niedrigsten vorhergesagten Spam-Wahrscheinlichkeit einstufen. Nehmen Sie als Nächstes die höchsten bewerteten Datensätze, wobei Schwellenwert ist, den Sie festlegen möchten (100, 500, 1000 usw.), und berechnen Sie dann den Prozentsatz falsch positiver Fälle in den höchsten Fällen und den Prozentsatz falsch negativer Fälle in die verbleibende untere Reihe von - Fällen, um das richtige Gleichgewicht zwischen Sensitivität / Spezifität zu finden, das Ihren Bedürfnissen entspricht.n n n nnnnNn

RobertF
quelle
3

Wenn Sie natürlich alles als "kein Spam" klassifizieren, können Sie sagen, dass bei 100 Mails 99 Mails korrekt klassifiziert werden, aber es wird auch als "kein Spam" eingestuft, der einzige, der als Spam eingestuft wird (100% falsch positiv). Es stellt sich heraus, dass die Metrik, die Sie zur Auswertung des Algorithmus auswählen, nicht angepasst ist. Dieses Video veranschaulicht das Konzept.

Wenn Sie den Datensatz grob ausgleichen, können Sie die Fehlklassifizierungen gewichten. Ein Algorithmus, der vermutlich einen unausgeglichenen Trainingssatz verwendet, wird nicht lernen, von den Merkmalen zu unterscheiden, da er der Tatsache, dass die Daten der spärlichen Klasse falsch klassifiziert werden, keine große Bedeutung beimessen würde.

Giuseppe
quelle
0

Ich würde weder ein Downsampling noch ein Upsampling wählen, da beide Tricks den Lernalgorithmus beeinflussen. Wenn die Daten jedoch unausgewogen sind, wird das Genauigkeitsmaß ungültig oder nicht aussagekräftig. Daher ist es besser, Präzisions- und Rückrufmaße zu verwenden. Beide hängen hauptsächlich vom TP ab ( Die in Ihrem Fall korrekt klassifizierten Spam-Mails geben Aufschluss über die tatsächliche Leistung Ihres Systems bei der Erkennung von Spam-Mails, unabhängig von der Anzahl der negativen Beispiele.

Ahmad Hassanat
quelle