Soll ich mich für einen 'ausgeglichenen' Datensatz oder einen 'repräsentativen' Datensatz entscheiden?


48

Meine 'maschinelles Lernen'-Aufgabe besteht darin, harmlosen Internet-Verkehr von böswilligem Verkehr zu trennen. Im realen Szenario ist der größte Teil (sagen wir 90% oder mehr) des Internetverkehrs harmlos. Daher hatte ich das Gefühl, dass ich auch für das Training meiner Modelle ein ähnliches Daten-Setup wählen sollte. Aber ich bin auf ein oder zwei Forschungsarbeiten gestoßen (in meinem Arbeitsbereich), die einen "Klassenausgleich" -Datenansatz zum Trainieren der Modelle verwendet haben, der eine gleiche Anzahl von Fällen von harmlosem und böswilligem Datenverkehr impliziert.

Wenn ich Modelle für maschinelles Lernen erstelle, sollte ich mich im Allgemeinen für einen Datensatz entscheiden, der für das Problem der realen Welt repräsentativ ist, oder für einen ausgeglichenen Datensatz, der besser zum Erstellen der Modelle geeignet ist (da sich bestimmte Klassifikatoren bei einem Klassenungleichgewicht nicht gut verhalten) aus anderen mir nicht bekannten gründen)?

Kann jemand mehr Aufschluss über die Vor- und Nachteile beider Entscheidungen geben und wie man entscheidet, für wen man sich entscheidet?

Antworten:


38

Ich würde sagen, die Antwort hängt von Ihrem Anwendungsfall ab. Basierend auf meiner Erfahrung:

  • Wenn Sie versuchen, ein repräsentatives Modell zu erstellen - eines, das die Daten beschreibt und nicht unbedingt vorhersagt -, würde ich vorschlagen, eine repräsentative Stichprobe Ihrer Daten zu verwenden.
  • Wenn Sie ein Vorhersagemodell erstellen möchten, insbesondere ein Modell, das eine gute Leistung in Bezug auf AUC oder Rangfolge erzielt, und die Verwendung eines grundlegenden ML-Frameworks (z. B. Decision Tree, SVM, Naive Bayes usw.) vorsieht, dann würde ich Ihnen vorschlagen, das Modell zu füttern Rahmen eines ausgeglichenen Datensatzes. Ein Großteil der Literatur zu Klassenungleichgewichten stellt fest, dass eine zufällige Unterabtastung (Heruntertastung der Mehrheitsklasse auf die Größe der Minderheitsklasse) zu Leistungssteigerungen führen kann.
  • Wenn Sie ein Vorhersagemodell erstellen, aber ein erweitertes Framework verwenden (dh etwas, das die Stichprobenparameter über Wrapper bestimmt oder eine Modifikation eines Bagging-Frameworks, das Stichproben auf Klassenäquivalenz prüft), würde ich vorschlagen, die repräsentative Stichprobe erneut zu füttern und zuzulassen Der Algorithmus sorgt für das Ausgleichen der Daten für das Training.

2
Wenn Sie versuchen, ein repräsentatives Modell zu erstellen - eines, das die Daten beschreibt und nicht unbedingt vorhersagt ... wer erstellt ein Modell, das nicht vorhersagt? Haben Sie nicht dort ...
PNP

8
Unbeaufsichtigtes Lernen ist ein Beispiel für die Erstellung eines Modells, das nicht unbedingt auf Vorhersagen ausgerichtet ist. In einigen Fällen möchten Sie möglicherweise Ihre Daten untersuchen oder zusammenfassen.
DSea

1
Ich würde sagen, es ist sicherer, die Stichprobe auszugleichen, aber auch Stichprobengewichte zu erfassen, damit Sie Ihre Daten später auf Repräsentativität überprüfen können, wenn dies erforderlich ist. @pnp Viele Sozialwissenschaftler bauen nicht vorhersagbare Modelle, um zB Theorien zu bestätigen.
Shadowtalker

Wie würde ein ausgeglichenes Modell mit einem repräsentativen Modell verglichen, das gewichtete Beobachtungen verwendet, um ein ausgeglichenes Modell nachzuahmen?
JenSCDC

1
Die AUC ist nicht von einem Klassenungleichgewicht betroffen. Dies ist die Wahrscheinlichkeit, dass Ihr Modell eine zufällig ausgewählte positive Klasse höher einstuft als eine zufällig ausgewählte negative Klasse. Ich kann Ihren Ratschlägen für allgemeine Zwecke nicht zustimmen. Wenn Sie eine repräsentative Stichprobe haben, zum Beispiel eine einfache Zufallsstichprobe, sollte diese repräsentativ bleiben.
Matthew Drury

8

Ich denke, es kommt immer auf das Szenario an. Die Verwendung eines repräsentativen Datensatzes ist nicht immer die Lösung. Angenommen, Ihr Trainingssatz enthält 1000 negative und 20 positive Beispiele. Ohne Änderung des Klassifikators klassifiziert Ihr Algorithmus alle neuen Beispiele als negativ. In einigen Szenarien ist dies in Ordnung. In vielen Fällen sind die Kosten für das Fehlen von Postivbeispielen jedoch hoch, sodass Sie eine Lösung dafür finden müssen.

In solchen Fällen können Sie einen kostensensitiven Algorithmus für maschinelles Lernen verwenden. Zum Beispiel bei der medizinischen Diagnosedatenanalyse.

Zusammenfassend: Klassifizierungsfehler haben nicht die gleichen Kosten!


7

Es gibt immer die Lösung, beide Ansätze auszuprobieren und denjenigen beizubehalten, der die erwarteten Leistungen maximiert.

In Ihrem Fall würde ich davon ausgehen, dass Sie es vorziehen, falsche Negative auf Kosten eines falschen Positivs zu minimieren. Daher möchten Sie Ihren Klassifikator gegen das starke Negativ voreingenommen machen und das Ungleichgewicht beseitigen, indem Sie die Anzahl der negativen Beispiele in Ihrem Trainingssatz verringern.

Berechnen Sie dann die Präzision / Rückruf, Sensitivität / Spezifität oder ein beliebiges Kriterium für den vollständigen, unausgeglichenen Datensatz, um sicherzustellen, dass Sie kein signifikantes Muster in den realen Daten ignoriert haben, während Sie das Modell auf den reduzierten Daten aufbauen.


4

Trennen Sie das Betriebs- und das Schulungsszenario.

Das Betriebsszenario ist dasjenige, an dem Ihr Klassifikator gemessen wird. Hier sollten Sie gute Leistungen erbringen. Die Verwendung sollte einen Datensatz enthalten, der für dieses Szenario repräsentativ ist.

Das Trainingsszenario ist das, was Sie tun, um einen Klassifikator zu erstellen, der im operativen Szenario eine gute Leistung erbringt.

Häufig sind die Datasets in beiden Szenarien von derselben Art, sodass keine Unterscheidung erforderlich ist. Zum Beispiel haben Sie einen Online-Shop, mit dem Sie die vergangene Verwendung trainieren können, um eine gute Leistung für die zukünftige Verwendung zu erzielen. Während des Trainings können Sie jedoch einen anderen Datensatz als den verwenden, der das Betriebsszenario darstellt. Wenn Sie schlafen, von einem Klassifikator träumen, ihn in Ihrem Betriebsszenario validieren (dieser Schritt sollte nach dem Aufwachen ausgeführt werden), sind Sie genauso gut wie nach dem üblichen maschinellen Lernpfad.

Die Unterscheidung zwischen Betriebs- und Schulungsszenarien wird wichtig, wenn der Datensatz unausgewogen ist. Die meisten Algorithmen funktionieren mit einem solchen Datensatz nicht gut.

Zögern Sie also nicht, zwei Datensätze zu verwenden - Sie können einen ausgeglichenen Datensatz für das Training verwenden. Sobald Sie fertig sind, validieren Sie Ihren Klassifizierer des Betriebsdatensatzes.


3

Ich denke, es gibt zwei getrennte Punkte, die zu berücksichtigen sind: Trainingszeit und Vorhersagegenauigkeit.

Nehmen wir ein einfaches Beispiel: Nehmen wir an, Sie haben zwei Klassen mit einer multivariaten Normalverteilung. Grundsätzlich müssen Sie die jeweiligen Klassenmittel und Klassenkovarianzen abschätzen. Das erste, was Sie interessiert, ist Ihre Schätzung des Unterschieds in der Klasse bedeutet: Ihre Leistung wird jedoch durch die Genauigkeit des schlechtesten geschätzten Mittelwerts begrenzt: Es ist nicht gut, einen Mittelwert auf die 100. Dezimalstelle zu schätzen - wenn der andere Mittelwert nur ist Geschätzt auf 1 Dezimalstelle. Es ist also eine Verschwendung von Rechenressourcen, alle Daten zu verwenden. Stattdessen können Sie die häufigere Klasse unterbemustern UND die Klassen entsprechend neu gewichten. (Diese Rechenressourcen können dann zum Erkunden verschiedener Eingabevariablen usw. verwendet werden.)

Das zweite Problem ist die Genauigkeit der Vorhersage: Unterschiedliche Algorithmen verwenden unterschiedliche Fehlermetriken, die möglicherweise mit Ihren eigenen Zielen übereinstimmen oder nicht. Zum Beispiel wird durch die logistische Regression der Gesamtwahrscheinlichkeitsfehler bestraft. Wenn also die meisten Ihrer Daten aus einer Klasse stammen, wird tendenziell versucht, die genauen Wahrscheinlichkeitsschätzungen (z. B. 90 vs. 95% Wahrscheinlichkeit) dieser einen Klasse zu verbessern, anstatt zu versuchen, sie zu identifizieren die seltene Klasse. In diesem Fall möchten Sie auf jeden Fall versuchen, die seltene Klasse neu zu gewichten (und anschließend die Schätzung [durch Anpassen des Bias-Terms] anzupassen, um die Wahrscheinlichkeitsschätzungen neu auszurichten).

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.