Ich arbeite mit unausgeglichenen Daten, wobei es für jede Klasse = 1 ungefähr 40 Fälle von Klasse = 0 gibt. Ich kann die Klassen anhand einzelner Merkmale vernünftigerweise unterscheiden, und das Training eines naiven Bayes- und SVM-Klassifikators auf 6 Merkmale und ausgewogene Daten ergab eine bessere Unterscheidung (ROC-Kurven unten).
Das ist in Ordnung und ich dachte, es geht mir gut. Die Konvention für dieses spezielle Problem besteht jedoch darin, Treffer mit einer Genauigkeit vorherzusagen, normalerweise zwischen 50% und 90%. zB "Wir haben einige Treffer mit einer Genauigkeit von 90% festgestellt." Als ich dies versuchte, betrug die maximale Genauigkeit, die ich mit den Klassifikatoren erzielen konnte, etwa 25% (schwarze Linie, PR-Kurve unten).
Ich könnte dies als ein Problem des Klassenungleichgewichts verstehen, da PR-Kurven empfindlich auf Ungleichgewicht reagieren und ROC-Kurven nicht. Das Ungleichgewicht scheint jedoch die einzelnen Merkmale nicht zu beeinträchtigen: Ich kann mit den einzelnen Merkmalen (blau und cyan) eine ziemlich hohe Präzision erzielen.
Ich verstehe nicht, was los ist. Ich könnte es verstehen, wenn im PR-Bereich alles schlecht lief, da die Daten schließlich sehr unausgewogen sind. Ich könnte es auch verstehen, wenn die Klassifikatoren im ROC- und PR-Bereich schlecht aussehen - vielleicht sind sie nur schlechte Klassifikatoren. Aber was macht die Klassifikatoren nach ROC besser, aber nach Precision-Recall schlechter ?
Bearbeiten : Ich habe festgestellt, dass in den Bereichen mit niedrigem TPR / Rückruf (TPR zwischen 0 und 0,35) die einzelnen Merkmale die Klassifizierer sowohl in der ROC- als auch in der PR-Kurve durchweg übertreffen. Vielleicht liegt meine Verwirrung daran, dass die ROC-Kurve die Bereiche mit hohem TPR "hervorhebt" (wo die Klassifizierer gut abschneiden) und die PR-Kurve den niedrigen TPR hervorhebt (wo die Klassifizierer schlechter sind).
Bearbeiten 2 : Das Training mit nicht ausgeglichenen Daten, dh mit dem gleichen Ungleichgewicht wie die Rohdaten, hat die PR-Kurve wieder zum Leben erweckt (siehe unten). Ich würde vermuten, dass mein Problem darin bestand, die Klassifikatoren nicht richtig zu trainieren, aber ich verstehe nicht ganz, was passiert ist.
quelle
Der beste Weg, ein Modell zu bewerten, besteht darin, zu untersuchen, wie es in der realen Welt verwendet wird, und eine Kostenfunktion zu entwickeln.
Abgesehen davon wird zum Beispiel zu viel Wert auf das Quadrat gelegt, aber viele glauben, dass es eine nutzlose Statistik ist. Lassen Sie sich also nicht auf eine Statistik ein.
Ich vermute, dass Ihre Antwort ein Beispiel für das Genauigkeitsparadoxon ist.
https://en.m.wikipedia.org/wiki/Accuracy_paradox
Rückruf (auch als Sensitivität oder echte positive Rate bezeichnet) ist der Anteil der relevanten Instanzen, die abgerufen werden.
tpr = tp / (tp + fn)
Präzision (auch als positiver Vorhersagewert bezeichnet) ist der Anteil der abgerufenen Instanzen, die relevant sind.
ppv = tp / (tp + fp)
Angenommen, Sie haben einen sehr unausgewogenen Satz von 99 positiven und einem negativen.
Angenommen, ein Modell wird trainiert, in dem das Modell sagt, dass alles positiv ist.
tp = 99 fp = 1 ppv wird zu 0,99
Klar ein Junk-Modell trotz des "guten" positiven Vorhersagewerts.
Ich empfehle, ein Trainingsset zu erstellen, das entweder durch Über- oder Unterabtastung ausgewogener ist. Verwenden Sie nach dem Erstellen des Modells einen Validierungssatz, der das ursprüngliche Ungleichgewicht beibehält, und erstellen Sie darauf ein Leistungsdiagramm.
quelle
Darf ich nur darauf hinweisen, dass dies tatsächlich umgekehrt ist: ROC reagiert empfindlich auf Klassenungleichgewichte, während PR robuster ist, wenn es um verzerrte Klassenverteilungen geht. Siehe https://www.biostat.wisc.edu/~page/rocpr.pdf .
Sie zeigen auch, dass "Algorithmen, die den Bereich unter der ROC-Kurve optimieren, nicht garantiert den Bereich unter der PR-Kurve optimieren".
quelle