Ich habe einen Datensatz in Form von (Features, Binärausgang 0 oder 1), aber 1 kommt ziemlich selten vor. Wenn ich also immer 0 vorhersage, erhalte ich eine Genauigkeit zwischen 70% und 90% (abhängig von den jeweiligen Daten, die ich betrachte) ). Die ML-Methoden geben mir ungefähr die gleiche Genauigkeit, und ich bin der Meinung, dass es in dieser Situation einige Standardmethoden geben sollte, die die Genauigkeit gegenüber der offensichtlichen Vorhersageregel verbessern würden.
52
Antworten:
Sowohl hxd1011 als auch Frank haben Recht (+1). Resampling und / oder kostensensitives Lernen sind die beiden Hauptmethoden, um das Problem unausgeglichener Daten zu umgehen. Drittens werden Kernel-Methoden verwendet, die unter Umständen weniger vom Klassenungleichgewicht betroffen sind. Lassen Sie mich betonen, dass es keine Patentlösung gibt. Per Definition haben Sie eine Klasse, die in Ihren Stichproben nicht ausreichend vertreten ist.
Trotzdem glaube ich, dass Sie die Algorithmen SMOTE und ROSE sehr hilfreich finden werden. SMOTE verwendet effektiv einen nahe Nachbarn-Ansatz, um Mitglieder der Mehrheitsklasse auszuschließen, während auf ähnliche Weise synthetische Beispiele für eine Minderheitenklasse erstellt werden. ROSE versucht, mithilfe eines geglätteten Bootstrap-Ansatzes Schätzungen der zugrunde liegenden Verteilungen der beiden Klassen zu erstellen und diese für synthetische Beispiele zu verwenden. Beide sind in R, SMOTE im Paket DMwR und ROSE im Paket mit dem gleichen Namen verfügbar . Sowohl SMOTE als auch ROSE führen zu einem Trainingsdatensatz, der kleiner als der ursprüngliche ist.k
Ich würde wahrscheinlich argumentieren, dass eine bessere (oder weniger schlechte) Metrik für den Fall von unausgeglichenen Daten die Verwendung von Cohensk und / oder Receiver-Betriebskennlinien Fläche unter der Kurve ist . Cohens Kappa regelt direkt die erwartete Genauigkeit. Die AUC ist eine Funktion der Sensitivität und Spezifität. Die Kurve ist unempfindlich gegenüber Disparitäten in den Klassenanteilen. Beachten Sie auch hier, dass dies nur Metriken sind, die mit einem großen Salzkorn verwendet werden sollten. Sie sollten sie idealerweise an Ihr spezifisches Problem anpassen und dabei die Gewinne und Kosten berücksichtigen, die korrekte und falsche Klassifizierungen in Ihrem Fall vermitteln. Das habe ich bei Auftriebskurven festgestelltist eigentlich eher informativ in dieser Angelegenheit. Unabhängig von Ihrer Metrik sollten Sie versuchen, einen separaten Test zu verwenden, um die Leistung Ihres Algorithmus zu bewerten. Gerade wegen der Klassenunausgewogenheit ist eine Überanpassung noch wahrscheinlicher, so dass ein Test außerhalb der Stichprobe entscheidend ist.
Die wahrscheinlich beliebteste aktuelle Veröffentlichung zu diesem Thema ist Lernen aus unausgeglichenen Daten von He und Garcia. Es gibt einen sehr schönen Überblick über die Punkte, die ich selbst und in anderen Antworten angesprochen habe. Darüber hinaus halte ich die von Max Kuhn im Rahmen des Caret- Pakets vorgestellte Einführung in die Unterabtastung für Klassenungleichgewichte für eine hervorragende Ressource, um ein Strukturbeispiel dafür zu erhalten, wie Unter- / Überabtastung sowie die Erstellung synthetischer Daten gemessen werden können gegen einander.
quelle
Erstens wäre die Bewertungsmetrik für unausgeglichene Daten nicht genau. Angenommen, Sie führen eine Betrugserkennung durch, bei der 99,9% Ihrer Daten kein Betrug sind. Wir können einfach ein Dummy-Modell mit einer Genauigkeit von 99,9% herstellen. (prognostizieren Sie einfach alle Daten ohne Betrug).
Sie möchten Ihre Bewertungsmetrik von Genauigkeit auf etwas anderes ändern, z. B. F1-Punktzahl oder Genauigkeit und Rückruf . Im zweiten Link habe ich bereitgestellt. Es gibt Details und Intuitionen, warum der Präzisionsrückruf funktioniert.
Bei sehr unausgeglichenen Daten kann das Erstellen eines Modells sehr schwierig sein. Sie können mit der Weighted-Loss-Funktion spielen oder nur eine Klasse modellieren. wie eine Klasse SVM oder passen ein Multi-Variate Gaussian (Wie der Link, den ich zuvor bereitgestellt habe.)
quelle
Probleme mit dem Klassenungleichgewicht können entweder durch kostensensitives Lernen oder Resampling behoben werden. Siehe Vor- und Nachteile von kostensensitiven Lernen vs. Probenahme , copypasted unter:
{1} enthält eine Liste der Vor- und Nachteile des kostensensitiven Lernens im Vergleich zur Stichprobe:
Sie führten auch eine Reihe von Experimenten durch, die nicht schlüssig waren:
Sie versuchen dann zu verstehen, welche Kriterien in den Datensätzen möglicherweise darauf hindeuten, welche Technik besser geeignet ist.
Sie bemerken auch, dass SMOTE einige Verbesserungen bringen kann:
{1} Weiss, Gary M., Kate McCarthy und Bibi Zabar. "Kostensensitives Lernen im Vergleich zur Stichprobe: Welche Methode eignet sich am besten zur Behandlung von unausgeglichenen Klassen mit ungleichen Fehlerkosten?" DMIN 7 (2007): 35 & ndash; 41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=de&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf
quelle
Mehrere Antworten auf diese Frage haben bereits mehrere verschiedene Ansätze geliefert, die alle gültig sind. Dieser Vorschlag stammt aus einem Artikel und einer zugehörigen Software von Gary King, einem angesehenen Politikwissenschaftler in Harvard. Er hat einen Artikel mit dem Titel " Logistic Regression in Rare Events Data" mitverfasst, der einige ziemlich schlüssige Lösungen bietet.
Hier ist die Zusammenfassung:
Hier ist ein Link zum Artikel ... http://gking.harvard.edu/files/abs/0s-abs.shtml
quelle
Die Entwicklung von Klassifikatoren für Datensätze mit unausgeglichenen Klassen ist ein häufiges Problem beim maschinellen Lernen. Dichtebasierte Methoden können in einer solchen Situation erhebliche Vorteile gegenüber "traditionellen Klassifikatoren" haben.
Sie können sich auf das folgende Papier beziehen:
"Ein berechenbarer Plug-in-Schätzer für Mindestvolumensätze zur Erkennung von Neuheiten", C. Park, J. Huang und Y. Ding, Operations Research, 58 (5), 2013.
quelle
Dies ist ein Problem, bei dem die Erkennung von Anomalien ein nützlicher Ansatz ist. Dies ist im Grunde das, was Rodrigo in seiner Antwort beschrieben hat, in der Sie das statistische Profil Ihrer Trainingsklasse bestimmen und einen Wahrscheinlichkeitsschwellenwert festlegen, ab dem zukünftige Messungen als nicht zu dieser Klasse gehörend bestimmt werden. Hier ist ein Video-Tutorial , das Ihnen den Einstieg erleichtern soll. Sobald Sie dies aufgegriffen haben, würde ich empfehlen, die Schätzung der Kerneldichte nachzuschlagen.
quelle