[PYTHON] Was ist die ROC-Kurve? Warum sollte es nicht für unausgeglichene Daten verwendet werden? Leicht verständliche Erklärung

Inhaltsverzeichnis#

  1. Was ist die ROC-Kurve?
  2. Begriffe verstehen
  3. (Wieder) Was ist die ROC-Kurve?
  4. Was ist ROC-AUC?
  5. ROC-AUC- und Ungleichgewichtsdaten

Vorausgesetztes Wissen

  1. Verstehen, was eine gemischte Matrix ist
  2. Was Sie über logistische Regression wissen.

1. Was ist die ROC-Kurve?

Laut Wikipedia "Receiver Operating Characteristic (ROC) ist ein Konzept der Signalverarbeitung, das ein Standardmerkmal zum Bestimmen der Existenz von etwas aus einem beobachteten Signal ist.

Der obere Teil der Abbildung zeigt die Verteilung der Ergebnisse eines bestimmten Tests für eine bestimmte Krankheit durch negative und positive Personen. In diesem Beispiel zeigt die negative Person einen Wert mit einem kleineren Gesamtergebnis. Dort wird ein Kriterium (Kriterium, Grenzwert) eingeführt, und wenn es über diesem Wert liegt, ist es positiv, andernfalls ist es negativ. Nun, wenn B als Grenzpunkt übernommen wird ..... "

(゜ ∀ ゜) Fa?

Wikipedia erklärt dies ausführlicher, also lesen wir es später, aber lassen Sie uns zuerst die ROC-Kurve einfach verstehen.

ROC-Kurve ist "eine Kurve, die durch Anzeigen von TPR und FPR für jeden Grenzpunkt des Klassifikators erstellt wird" </ b>.

Um dies zu verstehen, müssen wir zuerst die Bedeutung der Begriffe (TPR, FPR, Grenzwerte) kennen.

Glossar

TP (True Positive)

Um TPR zu verstehen, müssen Sie zuerst TP verstehen. Dies ist die Anzahl der Proben, die auf dem Klassifikator positiv und wahr </ b> waren.

FN (falsch negativ)

Dies ist die Anzahl der Stichproben, bei denen der Klassifikator negativ (negativ) und falsch (falsch) </ b> war.

FP (False Positive)

Dies ist die Anzahl der Stichproben, die im Klassifikator positiv und im Falsch (False) </ b> waren.

TN (True Negative)

Dies ist die Anzahl der Stichproben, die für den Klassifizierer negativ und True </ b> waren.

TPR (True Positive Rate)

Dies ist der Prozentsatz der echten Positiven aus der Gesamtzahl der Positiven </ b>.

True Positive (TP) - Anzahl der Proben, die vom Klassifikator als positiv bewertet wurden und True waren

TPR = \frac{TP}{TP+FN} = \frac{TP}{Gesamtzahl der Positiven}

FPR (False Positive Rate)

Dies ist der Prozentsatz der falsch positiven Ergebnisse aus den insgesamt negativen </ b>.

False Positive (FP) - Anzahl der Proben, die vom Klassifikator als negativ beurteilt wurden und falsch waren

FPR = \frac{FP}{FP+TN} = \frac{FP}{Gesamtzahl der Negative}

Unten ist eine gemischte Matrix aus TP, FP, TN, FN.

Untitled(3).png

Abreißpunkt

Der Grenzwert ist hier die Grenze zwischen der Beurteilung, ob der Klassifikator positiv oder negativ beurteilt </ b>. Wenn beispielsweise ein Patient mit einer Wahrscheinlichkeit von 58% an Krebs erkrankt ist und der Grenzwert des Klassifikators 50% beträgt, wird der Patient als positiv beurteilt, da er 50% oder mehr beträgt. Wenn es 50% oder weniger beträgt, wird es als negativ bewertet.

Wie kann der Klassifikator es tatsächlich anzeigen? Das Folgende zeigt einen Cutoff von 75% am Beispiel der logistischen Regression. (Übrigens ist die Bedeutung gleich, ob Sie den Cutoff 25% von links oder 75% von rechts nennen, aber hier zählen wir von rechts.)

Untitled(1) (3).png

Sie können sehen, dass der Klassifikator beurteilt, dass alle Wahrscheinlichkeiten (Y-Achse) über 0,25 positiv sind.

(Wieder) Was ist die ROC-Kurve?

ROC-Kurve ist "eine Kurve, die durch Anzeigen von TPR und FPR für jeden Grenzpunkt des Klassifikators erstellt wird" </ b>.

TPR wird als X-Achse und FPR als Y-Achse angezeigt. Der Grenzwert liegt ebenfalls zwischen 0% und 100%. </ b>

Untitled (6).png

Am Beispiel des logistischen Regressionsklassifikators habe ich gezeigt, warum sich TPR und FPR erhöhen, wenn sich der Cutoff in Richtung der negativen Seite bewegt.

Untitled(1) (2).png

Wenn der Grenzwert 0% beträgt (wenn alle Daten als negativ beurteilt werden), beurteilt der Klassifizierer überhaupt nicht als positiv, so dass ersichtlich ist, dass sowohl TPR als auch FPR Null sind.

cutoff-0 (1).png

Wenn die ROC-Kurve diagonal gerade ist, können Sie sehen, dass der Klassifikator eine zufällige Entscheidung trifft (P (X) = 0,5). Dies liegt daran, dass TPR und FPR jedes Mal mit der gleichen Geschwindigkeit ansteigen, wenn sich der Grenzwert bewegt. </ b>

Untitled(2).png

Was ist ROC-AUC

ROC-AUC ist der Bereich unter der Kurve.

Untitled(5).png

Wenn ROC-AUC nicht verwendet werden soll

Wenn die Daten nicht ausgeglichen sind

ROC-AUC liefert unabhängig von der Qualität des Modells zum Zeitpunkt unausgeglichener Daten eine hohe Punktzahl. Weil FPR tendenziell niedrig ist. </ b> Angenommen, Sie haben 10000 Datenzeilen (10 Zeilen sind positive Daten und 9990 Zeilen sind negative Daten). Dann beträgt die Gesamtzahl der Negative, die der Nenner von FPR ist, 9990, und FPR liegt nahe bei 0 </ b>. Im Gegenteil, TPR ändert sich nicht so sehr. Selbst wenn der FPR niedrig ist, ist der TPR daher hoch und der ROC-AUC-Wert ist hoch.

TPR = \frac{TP}{TP+FN} = \frac{TP}{Gesamtzahl der Positiven}
FPR = \frac{FP}{FP+TN} = \frac{FP}{Gesamtzahl der Negative}

Außerdem sollte ROC-AUC nicht für unausgeglichene Daten als Index verwendet werden, um den Unterschied zwischen den beiden Modellwerten zu ermitteln. </ b>

Angenommen, Modell 1 bestimmt im vorherigen Beispiel 1000 der 10.000 Zeilen als positiv. In diesem Fall beträgt die Gesamtzahl der Positiven 10 Zeilen, sodass der FP 990 Zeilen beträgt. Nehmen wir also an, Modell 2 bestimmt 100 Zeilen als positiv. Dann beträgt die Gesamtzahl der Positiven 10 Zeilen, sodass der FP 90 Zeilen beträgt.

Es stellt sich heraus, dass Modell 2 eindeutig das beste Modell von Modell 1 und Modell 2 ist. Betrachtet man FPR als Index, so ist Modell 1 90/9990 = 0,0001 und Modell 2 990/9990 = 0,001 (TPR ist für beide Modelle der gleiche Wert). Es ist ersichtlich, dass es fast keinen Unterschied in den ROC-AUC-Werten gibt und der Leistungsunterschied zwischen Modell 1 und Modell 2 nicht sehr stark ausgedrückt werden kann </ b>.

Referenz

Precision-Recall AUC vs ROC AUC for class imbalance problems https://www.kaggle.com/general/7517

The Relationship Between Precision-Recall and ROC Curves http://pages.cs.wisc.edu/~jdavis/davisgoadrichcamera2.pdf