Konfusionsmatrix, ROC und AUC: Klassifikatoren genau bewerten
Kurz: Die Konfusionsmatrix zählt richtige und falsche Vorhersagen je Klasse; ROC-Kurve und AUC zeigen, wie gut ein Modell über alle Schwellenwerte hinweg trennt.
Genauer: „95 % Genauigkeit“ klingt gut, kann aber nichts wert sein: Sind 95 % der Mails kein Spam, erreicht ein Modell, das immer „kein Spam“ sagt, ebenfalls 95 %. Deshalb braucht man detailliertere Maße.
Im Detail
Konfusionsmatrix
Bei Ja/Nein (positiv/negativ):
| vorhergesagt + | vorhergesagt − | |
|---|---|---|
| tatsächlich + | TP (richtig positiv) | FN (verpasst) |
| tatsächlich − | FP (Fehlalarm) | TN (richtig negativ) |
| Beispiel Spamfilter, 1000 Mails (100 Spam): TP = 80, FN = 20, FP = 10, TN = 890. |
- Accuracy = (TP+TN)/Alle = 970/1000 = 0,97.
- Precision = TP/(TP+FP) = 80/90 ≈ 0,89 (wie viele „Spam“-Treffer stimmen?).
- Recall/Sensitivität = TP/(TP+FN) = 80/100 = 0,80 (wie viel Spam wird gefunden?).
- Spezifität = TN/(TN+FP) = 890/900 ≈ 0,99.
- F1 = 2·P·R/(P+R) ≈ 0,84.
Schwellenwert und Kosten
Modelle liefern oft Wahrscheinlichkeiten; erst ein Schwellenwert (z. B. 0,5) macht daraus „ja/nein“. Niedrigerer Schwellenwert → mehr Treffer (Recall ↑), mehr Fehlalarme (Precision ↓). Was richtig ist, hängt von den Kosten: Krebs-Screening will hohen Recall (nichts übersehen), ein Spam-Filter für wichtige Mails hohe Precision (keine echte Mail verlieren), Betrugserkennung wägt beides ab. Mehrklassen: Matrix N×N, Makro-/Mikro-Mittelwert der Metriken.
ROC und AUC
Die ROC-Kurve trägt für alle Schwellenwerte True-Positive-Rate (Recall) gegen False-Positive-Rate (1 − Spezifität) auf. Diagonale = Raten (AUC 0,5); je weiter oben links, desto besser. AUC (Fläche unter der Kurve) = Wahrscheinlichkeit, dass ein zufälliger Positivfall höher bewertet wird als ein zufälliger Negativfall: 1,0 perfekt, 0,5 Zufall.
from sklearn.metrics import confusion_matrix, roc_auc_score, precision_recall_curve
print(confusion_matrix(y_test, y_pred))
print(roc_auc_score(y_test, wahrscheinlichkeiten))Wann welches Maß?
- Ausgewogene Klassen: Accuracy, ROC-AUC.
- Seltene positive Klasse (Betrug, Krankheit): Precision, Recall, F1, PR-AUC (Precision-Recall-Kurve); ROC wirkt dort zu optimistisch.
- Regression: MAE, RMSE, R².
- Ranking/Suche: MAP, nDCG; Sprache: Perplexität, BLEU/ROUGE, menschliche Bewertung.
- Fairness: Metriken pro Gruppe vergleichen (Gleichheit der Fehlerraten).
- Kalibrierung: Stimmen Wahrscheinlichkeiten (80 % → 80 % Treffer)?
- Gute Praxis: Matrix ansehen, Fehler-Beispiele lesen, Baseline vergleichen, Kosten festlegen und Schwelle dazu wählen.
Siehe auch: Metriken: Precision, Recall und F1, Klassifikation und Regression, Kreuzvalidierung, KI-Evaluierung