Wie kann man die Leistung eines Klassifikators messen, wenn fast 100% der Klassenbezeichnungen zu einer Klasse gehören?


9

In meinen Daten habe ich eine Klassenvariable, bezeichnet als . Diese Klassenvariablenwerte sind 0 , 1 (binär). Fast alle Beobachtungen von C sind 0 (nahe 100%, genauer gesagt 97%). Ich möchte einen "Leistungstest" für verschiedene Klassifizierungsmodelle (dies könnte Genauigkeit sein). Was ich befürchte, ist, dass wenn ich ein Klassifizierungsmodell habe, das jede Beobachtung immer in Klasse 0 klassifiziert, dieses Modell zu 97% genau ist (obwohl es niemals andere Variablen berücksichtigt).C0,1C

Gibt es bekannte Leistungstests für Klassifizierungsmodelle für Daten, die sich mit sehr seltenen Ereignissen befassen?

Antworten:


3

Ein paar Möglichkeiten kommen mir in den Sinn.

Ein Blick auf die Gesamttrefferquote ist normalerweise keine sehr gute Idee, da sie von der Zusammensetzung des Testsatzes abhängt, wenn die Leistung für die verschiedenen Klassen unterschiedlich ist. Zumindest sollten Sie also die relative Häufigkeit der Klassen in Ihren Testdaten angeben (und begründen), um einen aussagekräftigen Wert abzuleiten.

Zweitens, wie @Shorack bereits sagte, geben Sie an, welche Fehlertypen wie wichtig sind. Oft muss der Klassifikator bestimmte Leistungskriterien erfüllen, um nützlich zu sein (und die Gesamtgenauigkeit ist selten das angemessene Maß). Es gibt Maßnahmen wie Sensitivität, Spezifität, positiver und negativer Vorhersagewert, die die verschiedenen Klassen und verschiedenen Arten der Fehlklassifizierung berücksichtigen. Sie können sagen, dass diese Maßnahmen unterschiedliche Fragen zum Klassifikator beantworten:

  • Sensitivität: Welcher Teil der Fälle, die wirklich zur Klasse C gehören, wird als solcher anerkannt?
  • Spezifität: Welcher Teil der Fälle, die wirklich nicht zur Klasse C gehören, wird als solche anerkannt?
  • positiver Vorhersagewert: Wenn der Klassifikator die Klasse C vorhersagt, wie hoch ist die Wahrscheinlichkeit, dass diese Vorhersage korrekt ist?
  • negativer Vorhersagewert: Wenn der Klassifikator vorhersagt, dass der Fall nicht der Klasse C entspricht, wie hoch ist die Wahrscheinlichkeit, dass diese Vorhersage korrekt ist?

Diese Fragen ermöglichen es oft, Spezifikationen zu formulieren, die der Klassifikator benötigen muss, um nützlich zu sein.

Die Vorhersagewerte sind im Hinblick auf die praktische Anwendung des Klassifikators oft wichtiger: Sie hängen von der Vorhersage ab, in der Sie sich bei der Anwendung des Klassifikators befinden (ein Patient ist normalerweise nicht daran interessiert zu wissen, wie wahrscheinlich das ist Der Test besteht darin, erkrankte Fälle zu erkennen, sondern vielmehr, wie wahrscheinlich die angegebene Diagnose ist. Um sie jedoch richtig berechnen zu können, müssen Sie die relativen Häufigkeiten der verschiedenen Klassen in der Population kennen, für die der Klassifikator verwendet wird (anscheinend haben Sie diese Informationen - es gibt also nichts, was Sie davon abhält, dies zu betrachten).

Sie können sich auch den Informationsgewinn ansehen, den Sie durch eine positive oder negative Vorhersage erhalten. Dies wird durch das positive und negative Wahrscheinlichkeitsverhältnis LR⁺ und LR⁻ gemessen. Kurz gesagt, sie sagen Ihnen, wie sehr die Vorhersage die Chancen für die betreffende Klasse verändert. (Siehe meine Antwort hier für eine detailliertere Erklärung)

Für Ihren trivialen Klassifikator sieht es so aus: Ich verwende die Klasse "0" als fragliche Klasse, also bedeutet "positiv" die Klasse "0". Von 100 Fällen werden 100 als positiv vorhergesagt (um zur Klasse 0 zu gehören). 97 von ihnen tun es wirklich, 3 nicht. Die Sensitivität für Klasse 0 beträgt 100% (alle 97 Fälle, die wirklich zur Klasse 0 gehören, wurden erkannt), die Spezifität ist 0 (keiner der anderen Fälle wurde erkannt). Der positive Vorhersagewert (unter der Annahme, dass die relative Häufigkeit von 97: 3 repräsentativ ist) beträgt 97%. Der negative Vorhersagewert kann nicht berechnet werden, da keine negative Vorhersage aufgetreten ist.

LR+=sensitivity1specificity=1
LR=1sensitivityspecificity=00


Ganz andere Gedankenrichtung: Sie erwähnen, dass Sie verschiedene Klassifikatoren bewerten möchten. Das klingt ein bisschen nach Klassifikatorvergleich oder -auswahl. Die Einschränkung bei den oben diskutierten Maßnahmen besteht darin, dass sie einer sehr hohen zufälligen Unsicherheit unterliegen (was bedeutet, dass Sie viele Testfälle benötigen ), wenn Sie sie auf "harten" Klassenetiketten bewerten. Wenn Ihre Vorhersage in erster Linie kontinuierlich ist (Metrik, z. B. posteriore Wahrscheinlichkeit), können Sie verwandte Kennzahlen verwenden, die dieselbe Art von Frage betrachten, jedoch keine Bruchteile von Fällen, sondern kontinuierliche Kennzahlen verwenden (siehe hier) . Diese sind auch besser geeignet, um kleine Unterschiede in den Vorhersagen zu erkennen.

(@FrankHarrell wird Ihnen sagen, dass Sie "richtige Bewertungsregeln" benötigen, daher ist dies ein weiterer Suchbegriff, den Sie berücksichtigen sollten.)


3

Zuallererst: Sind alle Treffer gleich wichtig und alle Fehlschüsse gleich wichtig? Wenn ja, dann ist nichts falsch daran, dass Ihr Nullmodell so gut bewertet wird: Es ist einfach eine ausgezeichnete Lösung.

Wenn Sie es für wichtig halten, eine gute Leistung bei der Vorhersage der Einsen zu erzielen, können Sie stattdessen das F-Maß verwenden. Es ist im Grunde das harmonische Mittel des Rückrufs (welcher Teil der tatsächlichen Einsen wurde als 1 vorhergesagt) und der Genauigkeit (welcher Teil der vorhergesagten Einsen war tatsächlich eine 1). Damit ein Modell bei dieser Messung eine hohe Punktzahl erzielen kann, muss es:

  1. Finde die meisten Einsen.
  2. Sagen Sie nicht oft eine 1 voraus, wenn sie tatsächlich 0 ist.

Und es muss beides gleichzeitig tun. Selbst wenn Ihr Modell nur eine der beiden nahezu perfekt ausführt, hat es eine niedrige Punktzahl, wenn es die andere Anforderung nicht erfüllt. https://en.wikipedia.org/wiki/F1_score


Dies ist eine falsche Bewertungsregel, bei der nur 1 Bit Information aus den Vorhersagen verwendet wird. Unsachgemäße Bewertungsregeln werden durch falsche Modelle optimiert.
Frank Harrell

2

cYY=1YR2χ2 um dies zu erreichen) und ist nicht empfindlich genug, um zwei Modelle zu vergleichen. Es ist eine schöne Zusammenfassung eines einzelnen Modells.


1

Die Receiver Operating Characteristic (ROC) http://en.wikipedia.org/wiki/Receiver_operating_characteristic-Kurve und die zugehörigen Berechnungen (nämlich Area Under Curve-AUC) werden häufig verwendet. Grundsätzlich stellen Sie sich vor, Ihr Klassifikator gibt eine kontinuierliche Antwort (z. B. zwischen 0 und 1) und Sie zeichnen die Empfindlichkeit gegen die Fehlalarmrate (1-Spezifität) auf, da die Entscheidungsschwelle zwischen 0 und 1 variiert. Diese wurden speziell für seltene Ereignisse (Feinderkennung) entwickelt Flugzeuge?).


1

Wenn Sie mit stark unausgeglichenen Daten arbeiten, ist die Precision-Recall-Kurve ein sehr gutes Werkzeug, besser als ihre häufigere Cousine, die ROC-Kurve .

Davis et. al. haben gezeigt, dass ein Algorithmus, der die Fläche unter der ROC-Kurve optimiert, die Fläche unter der PR-Kurve nicht garantiert.

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.