Zum Hauptinhalt springen

3.5 Signalentdeckungstheorie & ROC

Die Signalentdeckungstheorie (signal detection theory) stammt ursprünglich aus der Radartechnik und der Psychophysik: Ist auf dem verrauschten Radarschirm ein Flugzeug zu sehen oder nicht? Hört die Versuchsperson den leisen Ton oder nicht? Sie betrachtet also ein Zweiklassenproblem der Form „Signal vorhanden / nicht vorhanden“ und gibt den beiden Fehlerarten aus 3.4 eigene Namen.

Vier mögliche Ausgänge eines Detektionsexperiments​

Es gibt zwei Zustände (eine Dichotomie, dichotomy) 📄 06_bayes.pdf, Folie 24:

  • ω1\omega_1: Das zu detektierende Signal ist tatsächlich da.
  • ω2\omega_2: Das Signal ist nicht vorhanden.

Entscheidung „Signal da“ heißt x∈R1\mathbf{x}\in\mathcal{R}_1, „Signal nicht da“ heißt x∈R2\mathbf{x}\in\mathcal{R}_2. Damit ergeben sich vier Ausgänge:

AusgangWahrheitEntscheidungAuch genanntRate
Hit (Treffer)Signal da (ω1\omega_1)Signal darichtig positiv (true positive)Detektionswahrscheinlichkeit, Sensitivität, Richtig-Positiv-Rate: p(x∈R1∣ω1)p(x\in\mathcal{R}_1\mid\omega_1)
Korrekte Rückweisung (correct rejection)kein Signal (ω2\omega_2)kein Signalrichtig negativ (true negative)Richtig-Negativ-Rate, Spezifität: p(x∈R2∣ω2)p(x\in\mathcal{R}_2\mid\omega_2)
Fehlalarm (false alarm)kein Signal (ω2\omega_2)Signal dafalsch positiv, Fehler 1. ArtFehlalarmrate, Falsch-Positiv-Rate: p(x∈R1∣ω2)p(x\in\mathcal{R}_1\mid\omega_2)
Miss (Verpasser)Signal da (ω1\omega_1)kein Signalfalsch negativ, Fehler 2. ArtFalsch-Negativ-Rate: p(x∈R2∣ω1)p(x\in\mathcal{R}_2\mid\omega_1)

Wichtig: Alle vier Raten sind auf die wahre Klasse bedingt. Deshalb ergänzen sich je zwei zu 1:

p(x∈R1∣ω1)⏟Hitrate+p(x∈R2∣ω1)⏟Missrate=1,p(x∈R1∣ω2)⏟Fehlalarmrate+p(x∈R2∣ω2)⏟Spezifita¨t=1.\underbrace{p(x\in\mathcal{R}_1\mid\omega_1)}_{\text{Hitrate}} + \underbrace{p(x\in\mathcal{R}_2\mid\omega_1)}_{\text{Missrate}} = 1, \qquad \underbrace{p(x\in\mathcal{R}_1\mid\omega_2)}_{\text{Fehlalarmrate}} + \underbrace{p(x\in\mathcal{R}_2\mid\omega_2)}_{\text{Spezifität}} = 1.

Es genügen also zwei Zahlen, um das Verhalten vollständig zu beschreiben, üblicherweise Hitrate und Fehlalarmrate. Genau diese beiden trägt die ROC-Kurve gegeneinander auf.

Eselsbrücke Fehler 1. und 2. Art

Fehler 1. Art = Fehlalarm = „Feuer gemeldet, aber es brennt nicht“. Fehler 2. Art = Miss = „es brennt, aber niemand merkt es“. In der Statistik entspricht das dem fälschlichen Verwerfen bzw. fälschlichen Beibehalten der Nullhypothese „kein Signal“.

Ergänzung: Diese vier Zahlen, als absolute Häufigkeiten in einer 2×2-Tabelle angeordnet, heißen Konfusionsmatrix (confusion matrix). Sie und davon abgeleitete Maße wie Precision und F1 werden in Kapitel 5 ausführlich behandelt.

Beispiel: Signaldetektion bei gaußverteiltem Rauschen​

Folie 25 zeigt das Standardmodell 📄 06_bayes.pdf, Folie 25: Die Messung xx ist für beide Zustände normalverteilt mit gleicher Standardabweichung σ\sigma, aber verschiedenen Mittelwerten μ1\mu_1 und μ2\mu_2. Entschieden wird mit einer Schwelle x∗x^*.

Achtung, Bezeichnungswechsel auf den Folien

Auf Folie 24 ist ω1\omega_1 das Signal. In den Abbildungen der Folien 25 und 26 (aus Duda et al.) ist es umgekehrt: ω1\omega_1 (links, bei μ1\mu_1) ist das Rauschen, ω2\omega_2 (rechts, bei μ2\mu_2) das Signal, und man entscheidet „Signal“, wenn x>x∗x > x^*. Im Folgenden halten wir uns an die Abbildungen:

Hitrate=P(x>x∗∣ω2),Fehlalarmrate=P(x>x∗∣ω1).\text{Hitrate} = P(x > x^*\mid\omega_2), \qquad \text{Fehlalarmrate} = P(x > x^*\mid\omega_1).

In der Abbildung ist rechts von x∗x^* die rot gefüllte Fläche unter der ω2\omega_2-Kurve die Hitrate, die kleine schwarze Fläche unter dem rechten Ausläufer der ω1\omega_1-Kurve die Fehlalarmrate.

Die Trennbarkeit d′d'​

Als Maß für die Unterscheidbarkeit der beiden Zustände dient die Diskriminierbarkeit (discriminability) d′d' („d-Strich“, d-prime):

d′=∣μ2−μ1∣σ.d' = \frac{|\mu_2-\mu_1|}{\sigma}.

Das ist der Abstand der Mittelwerte, gemessen in Einheiten der Standardabweichung.

  • d′=0d'=0: Die Verteilungen liegen aufeinander, man kann nur raten.
  • d′=1d'=1: Die Mittelwerte sind eine Standardabweichung auseinander, starke Überlappung.
  • d′=3d'=3: kaum noch Überlappung, fast fehlerfreie Detektion möglich.

Warum „unabhängig vom Klassifikator“? d′d' hängt nur von den Verteilungen ab, also vom Problem selbst (Sensor, Rauschen, Signalstärke), nicht davon, wo man die Schwelle x∗x^* setzt. Es beschreibt, wie gut man bestenfalls trennen kann. Die Schwelle legt nur fest, wie man die verbleibenden Fehler zwischen Fehlalarm und Miss aufteilt.

Zahlenbeispiel​

Ergänzung, nicht auf den Folien: μ1=0\mu_1 = 0 (Rauschen), μ2=2\mu_2 = 2 (Signal), σ=1\sigma = 1, also d′=2d'=2. Φ\Phi ist die Verteilungsfunktion der Standardnormalverteilung.

Schwelle x∗x^*Hitrate P(x>x∗∣ω2)P(x > x^*\mid\omega_2)Fehlalarmrate P(x>x∗∣ω1)P(x > x^*\mid\omega_1)
−∞-\infty11
0Φ(2)≈0,977\Phi(2)\approx 0{,}9770,50{,}5
1Φ(1)≈0,841\Phi(1)\approx 0{,}8411−Φ(1)≈0,1591-\Phi(1)\approx 0{,}159
20,50{,}51−Φ(2)≈0,0231-\Phi(2)\approx 0{,}023
+∞+\infty00

Man sieht den Zielkonflikt (trade-off): Senkt man die Schwelle, findet man mehr Signale (Hitrate steigt), bekommt aber auch mehr Fehlalarme. Hebt man sie, wird es umgekehrt. Man kann nicht beides gleichzeitig verbessern, ohne d′d' zu erhöhen.

Die ROC-Kurve​

Die ROC-Kurve (Receiver Operating Characteristic) ist die Darstellung der Detektionsrate gegen die Fehlalarmrate für alle Schwellwerte 📄 06_bayes.pdf, Folie 26.

  • y-Achse: Hitrate (true positive rate, TPR).
  • x-Achse: Fehlalarmrate (false positive rate, FPR).
  • Jeder Schwellwert x∗x^* liefert einen Punkt (FPR,TPR)(\text{FPR}, \text{TPR}). Lässt man x∗x^* von +∞+\infty nach −∞-\infty laufen, wandert der Punkt von (0,0)(0,0) („nie Signal melden“) nach (1,1)(1,1) („immer Signal melden“).

Der Name kommt aus der Radartechnik des Zweiten Weltkriegs: Receiver ist der Radarempfänger, dessen Bediener (operator) eine Empfindlichkeit wählen musste.

Folie 26 zeigt eine Kurvenschar für verschiedene d′d':

  • d′=0d'=0: die Diagonale. Hitrate = Fehlalarmrate für jede Schwelle, also reines Raten.
  • d′=1,2,3d'=1, 2, 3: zunehmend nach links oben gewölbte Kurven.
  • Der ideale Klassifikator hätte den Punkt (0,1)(0, 1): alle Signale erkannt, kein Fehlalarm.
  • Der rote Punkt markiert einen konkreten Arbeitspunkt (operating point) auf der Kurve für d′=3d'=3: eine bestimmte Schwelle mit hoher Hitrate bei sehr kleiner Fehlalarmrate.

Die Werte aus dem Zahlenbeispiel oben, (0,5; 0,977)(0{,}5;\ 0{,}977), (0,159; 0,841)(0{,}159;\ 0{,}841), (0,023; 0,5)(0{,}023;\ 0{,}5), liegen alle auf der Kurve für d′=2d'=2.

Beschriftung der x-Achse auf Folie 26

Die x-Achse ist auf der Folie mit P(x<x∗∣x∈ω2)P(x < x^*\mid x\in\omega_2) beschriftet. Das wäre aber die Missrate. Gemeint ist die Fehlalarmrate P(x>x∗∣x∈ω1)P(x > x^*\mid x\in\omega_1): Rauschen (ω1\omega_1) liegt über der Schwelle und wird als Signal gemeldet.

Wie interpretiert man ROC-Kurven?​

Folie 27 verweist auf zwei interaktive Visualisierungen (navan.name/roc und Wikipedia) sowie ein Erklärvideo von dataschool.io 📄 06_bayes.pdf, Folie 27. Die Grundidee der Animationen:

  • Schwelle verschieben (schwarzer Balken zwischen der blauen Negativ- und der roten Positiv-Verteilung): Der Punkt wandert entlang derselben ROC-Kurve. Die Kurve selbst ändert sich nicht.
  • Verteilungen auseinanderziehen (größeres d′d'): Die Kurve selbst wölbt sich stärker nach links oben.
  • Verteilungen übereinanderlegen: Die Kurve fällt auf die Diagonale.

Merksatz: Die Kurve beschreibt den Klassifikator (bzw. das Problem), der Punkt auf der Kurve die gewählte Schwelle.

Welcher Arbeitspunkt ist der richtige?

Das hängt von den Kosten ab, nicht von der ROC-Kurve allein. Beim Krebs-Screening nimmt man viele Fehlalarme in Kauf, um kaum Fälle zu übersehen (Punkt rechts oben). Bei einem Spamfilter ist ein Fehlalarm (wichtige Mail im Spam) teuer, also wählt man einen Punkt weit links. Das entspricht genau der Wahl der Schwelle θ\theta im Likelihood-Quotienten aus 3.2.

ROC-Kurve aus Scores berechnen​

Ergänzung, nicht auf den Folien: In der Praxis hat man keine bekannten Verteilungen, sondern einen Klassifikator, der für jedes Testbeispiel einen Score ausgibt (z. B. den Posterior p(ωSignal∣x)p(\omega_{\text{Signal}}\mid\mathbf{x})). Man sortiert die Beispiele absteigend nach Score und senkt die Schwelle schrittweise unter jeden Score.

Beispiel mit 4 positiven (P) und 4 negativen (N) Testbeispielen:

Score0,90,80,70,550,50,40,30,2
KlassePPNPNPNN
TPR0,250,50,50,750,75111
FPR000,250,250,50,50,751

Spalte kk gibt den Punkt an, wenn alle Beispiele mit Score mindestens so groß wie der in Spalte kk als „positiv“ gemeldet werden. Jedes P macht einen Schritt nach oben (1/41/4), jedes N einen Schritt nach rechts (1/41/4). Die ROC-Kurve ist die Treppe (0,0)→(0; 0,5)→(0,25; 0,5)→(0,25; 0,75)→(0,5; 0,75)→(0,5; 1)→(1,1)(0,0)\to(0;\,0{,}5)\to(0{,}25;\,0{,}5)\to(0{,}25;\,0{,}75)\to(0{,}5;\,0{,}75)\to(0{,}5;\,1)\to(1,1).

Area Under Curve (AUC)​

Folie 28 diskutiert, wie man Klassifikatoren mit ROC-Kurven vergleicht 📄 06_bayes.pdf, Folie 28:

  • Wird nur eine Detektions- und Fehlalarmrate angegeben, kann man sich nur mit anderen Klassifikatoren vergleichen, die dieselbe Fehlalarmrate haben. Vergleiche an unterschiedlichen Punkten der ROC-Kurve sind sinnlos: Klassifikator A mit 90 % Hitrate bei 20 % Fehlalarmen ist nicht „besser“ als B mit 80 % bei 5 %, er hat vielleicht nur eine lockerere Schwelle.
  • Idealerweise sollte man die volle ROC-Kurve angeben, oder, falls man einen einzigen Kennwert braucht, die Fläche unter der ROC-Kurve (Area Under Curve, AUC). Je höher, desto besser ist der Klassifikator.

Die Abbildung (aus Wikipedia) zeigt drei Klassifikatoren (NetChop C-term 3.0, TAP + ProteaSMM-i, ProteaSMM-i) mit empirischen, treppenförmigen ROC-Kurven, die sich kreuzen: Je nach Fehlalarmrate ist mal der eine, mal der andere besser. Genau in so einem Fall gibt erst die AUC (oder die Wahl eines Arbeitspunktes) eine Rangfolge.

Wertebereich: AUC =1=1 ist ein perfekter Klassifikator, AUC =0,5=0{,}5 entspricht der Diagonalen (Raten). Ein Wert unter 0,5 bedeutet, dass der Klassifikator systematisch falsch herum liegt; invertiert man seine Entscheidung, wird er besser als Raten.

Probabilistische Interpretation der AUC (Folie 28)

Man kann zeigen: Der AUC-Wert ist die Wahrscheinlichkeit, dass der Klassifikator einem zufällig gezogenen positiven Beispiel einen höheren Wert der Entscheidungsfunktion zuweist als einem zufällig gezogenen negativen Beispiel.

Nachrechnen am Score-Beispiel (Ergänzung): Es gibt 4⋅4=164\cdot 4=16 Paare (P, N). Für jedes P zählt man die N mit kleinerem Score:

P-Score0,90,80,550,4
N darunter4432

Also 13/16=0,812513/16 = 0{,}8125 richtig geordnete Paare. Die Fläche unter der Treppe: 0,25⋅0,5+0,25⋅0,75+0,5⋅1=0,125+0,1875+0,5=0,81250{,}25\cdot 0{,}5 + 0{,}25\cdot 0{,}75 + 0{,}5\cdot 1 = 0{,}125+0{,}1875+0{,}5 = 0{,}8125. Beides stimmt überein, wie die Interpretation verspricht.

Warum gilt das? Jeder Schritt der Treppe nach rechts gehört zu einem N. Die Höhe der Treppe an dieser Stelle ist der Anteil der P, die einen höheren Score haben als dieses N. Die Fläche ist also der Mittelwert dieses Anteils über alle N, genau die Wahrscheinlichkeit „zufälliges P schlägt zufälliges N“.

Ergänzung: Für das Gauß-Modell mit gleichen Varianzen gilt AUC=Φ(d′/2)\text{AUC} = \Phi(d'/\sqrt2). Für d′=2d'=2 ist das Φ(1,41)≈0,92\Phi(1{,}41)\approx 0{,}92, für d′=0d'=0 genau 0,50{,}5.

Fallstrick: AUC ist schwellenunabhängig, der Einsatz nicht

Die AUC bewertet nur die Rangfolge der Scores, über alle Schwellen gemittelt. Im Einsatz muss man trotzdem eine Schwelle wählen, und zwei Klassifikatoren mit gleicher AUC können sich am relevanten Arbeitspunkt (z. B. bei sehr kleiner Fehlalarmrate) deutlich unterscheiden. Außerdem sagt die AUC nichts darüber, ob die Scores als Wahrscheinlichkeiten kalibriert sind.

In scikit-learn berechnet man beides mit sklearn.metrics.roc_curve und sklearn.metrics.roc_auc_score. Mehr zu AUC, Konfusionsmatrix und weiteren Bewertungsmaßen in Kapitel 5 – Modellbewertung.