Metriken richtig lesen
Precision, Recall, F1, ROC-AUC und ihre Fallen: welche Kennzahl welche Frage beantwortet und warum Genauigkeit fast immer die falsche ist.
Die Konfusionsmatrix
Alles beginnt mit vier Zahlen.
| Modell sagt ja | Modell sagt nein | |
|---|---|---|
| Ist ja | Richtig positiv (RP) | Falsch negativ (FN) |
| Ist nein | Falsch positiv (FP) | Richtig negativ (RN) |
Alle gängigen Kennzahlen sind Verhältnisse aus diesen vier Feldern. Wer die Matrix vor sich hat, braucht die Definitionen nicht auswendig.
Die vier wichtigsten Kennzahlen
| Kennzahl | Frage | Formel |
|---|---|---|
| Precision | Wie viele Alarme stimmen? | RP / (RP + FP) |
| Recall | Wie viele Fälle finde ich? | RP / (RP + FN) |
| F1 | Ein Kompromiss aus beiden | 2·P·R / (P + R) |
| Spezifität | Wie ruhig bleibt das System? | RN / (RN + FP) |
Ein vollständiges Bild
import numpy as np
from sklearn.metrics import (confusion_matrix, precision_recall_fscore_support,
roc_auc_score, average_precision_score)
rng = np.random.default_rng(0)
y = (rng.random(2000) < 0.03).astype(int) # 3 % positive Faelle
s = np.clip(rng.normal(0.2 + 0.5 * y, 0.2), 0, 1) # Modell-Score
for schwelle in (0.3, 0.5, 0.7):
pred = (s >= schwelle).astype(int)
tn, fp, fn, tp = confusion_matrix(y, pred).ravel()
p, r, f1, _ = precision_recall_fscore_support(y, pred, average="binary",
zero_division=0)
print(f"Schwelle {schwelle} RP {tp:3d} FP {fp:3d} FN {fn:3d} "
f"P {p:.3f} R {r:.3f} F1 {f1:.3f}")
print("ROC-AUC", round(roc_auc_score(y, s), 3))
print("PR-AUC ", round(average_precision_score(y, s), 3))
# Bei 3 % Positiven liegt der Zufallswert der PR-AUC bei 0,03,
# der der ROC-AUC bei 0,5. Nur die erste Zahl ist hier informativ.Kennzahlen für andere Aufgaben
| Aufgabe | Übliche Kennzahl | Fallstrick |
|---|---|---|
| Regression | RMSE, MAE, R² | R² kann bei nichtlinearem Zusammenhang negativ werden |
| Objekterkennung | mAP bei IoU 0,5 bis 0,95 | Der IoU-Schwellwert entscheidet die halbe Zahl |
| Segmentierung | Dice, IoU | Bei kleinen Objekten sehr instabil |
| Textgenerierung | Menschliche Bewertung, LLM-Judge | Automatische Maße wie BLEU korrelieren schwach |
| Suche und RAG | Recall@k, nDCG, MRR | Ohne festen Bewertungssatz nicht vergleichbar |
Die verallgemeinerte Kennzahl
Besser als jede F-Variante ist eine explizite Kostenrechnung:
Diese Kurve über t aufzutragen und ihr Minimum abzulesen ist die einzige
Schwellwertwahl, die sich einem Fachbereich begründen lässt.
Makro, Mikro, gewichtet
Bei mehreren Klassen unterscheiden sich die Mittelungen erheblich:
- Makro mittelt die Kennzahl je Klasse gleichgewichtig. Kleine Klassen zählen genauso viel wie große. Das ist meist die faire Wahl.
- Mikro zählt alle RP, FP, FN zusammen. Bei einem Etikett je Fall ist Mikro-F1 identisch mit der Genauigkeit, und erbt deren Schwäche.
- Gewichtet mittelt nach Klassenhäufigkeit und verdeckt damit genau das Problem, das man untersuchen wollte.
Wer nur eine Zahl berichten darf, berichtet Makro-F1 und legt die Konfusionsmatrix daneben.
Passende Kurse und Quellen
Interpretable Machine Learning
Was Verfahren zur Erklärbarkeit leisten und wo sie überinterpretiert werden. Die nüchternste Darstellung des Themas, frei verfügbar.
Für alle, die Erklärbarkeit versprechen müssen und wissen sollten, was Verfahren wirklich leisten.
Modellbewertung in scikit-learn
Die vollständige Übersicht der Bewertungsmaße mit ihren Fallstricken. Die kürzeste Antwort auf die Frage, warum Genauigkeit meist die falsche Zahl ist.
Die kürzeste Antwort auf die Frage, warum Genauigkeit meist die falsche Zahl ist.