Metriken & Confusion Matrix
Alle vier Verfahren werden am Ende an denselben Zahlen gemessen. Aber welche Zahl? Accuracy ist die bekannteste — und bei unbalancierten Klassen wie in PlantVillage die irreführendste.
Die Accuracy-Falle: Wenn 90 % der Blätter gesund sind, bekommt ein Modell, das immer „gesund“ sagt, 90 % Accuracy — und hat null gelernt.
Interaktiv: der Schwellwert-Trade-off
Szenario: 1.000 Blätter, davon 100 krank. Das Modell gibt jedem Bild einen Krankheits-Score; ab dem Schwellwert sagt es „krank“. Zieh am Regler und beobachte, wie Precision und Recall gegeneinander arbeiten:
| Modell: krank | Modell: gesund | |
|---|---|---|
| wirklich krank (100) | 75 richtig erkannt (TP) | 25 übersehen (FN) |
| wirklich gesund (900) | 225 Fehlalarm (FP) | 675 richtig verschont (TN) |
Accuracy
75.0 %
Precision
25.0 %
Recall
75.0 %
F1
37.5 %
Die Begriffe in einem Satz
- Precision — Wenn das Modell „krank“ sagt: wie oft stimmt das? TP / (TP + FP)
- Recall — Von allen wirklich kranken Blättern: wie viele findet es? TP / (TP + FN)
- F1 — Harmonisches Mittel aus beiden. Wird nur gut, wenn beide gut sind.
- Confusion Matrix — Die ganze Wahrheit: welche Klasse wird mit welcher verwechselt.
In Python: classification_report
PYTHONevaluation.py
from sklearn.metrics import classification_report, confusion_matrix
y_pred = modell.predict(X_test_feat)
# Precision/Recall/F1 pro Klasse + macro/weighted-Mittel
print(classification_report(y_test, y_pred, digits=3))
# 38x38-Matrix: Zeile = wahre Klasse, Spalte = Vorhersage
cm = confusion_matrix(y_test, y_pred)
# Spannend sind die größten Werte ABSEITS der Diagonale:
# welche Krankheiten verwechselt das Modell systematisch?Warum eigentlich? — Warum ausgerechnet das harmonische Mittel?
Das arithmetische Mittel von Precision 100 % und Recall 2 % wäre 51 % — klingt halbwegs okay, das Modell ist aber nutzlos (es findet fast nichts). Das harmonische Mittel bestraft Ungleichgewicht hart: F1 wäre hier nur ~3,9 %. Es belohnt nur Modelle, die beide Ziele gleichzeitig erreichen — deshalb ist F1 der Standard-Score für unbalancierte Klassifikation.
Häufiger Denkfehler — macro und weighted F1 verwechseln
Bei 38 Klassen liefert
classification_report zwei Mittelwerte: macro mittelt die F1-Werte aller Klassen gleichberechtigt — die 150-Bilder-Klasse zählt genauso viel wie die 5.500-Bilder-Klasse. weighted gewichtet nach Klassengröße und kaschiert damit schwache kleine Klassen. Für PlantVillage-Berichte gehört macro-F1 neben die Accuracy — wer nur weighted berichtet, versteckt (bewusst oder nicht) die Problemklassen.Tiefer rein — Welcher Fehler ist teurer?
Precision und Recall sind keine technischen, sondern fachliche Größen. Übersehene Krankheit (FN): Der Pilz breitet sich aus, die Ernte ist gefährdet. Fehlalarm (FP): Ein gesundes Feld wird unnötig gespritzt. Im Pflanzenschutz ist FN meist teurer → man wählt den Schwellwert eher links (hoher Recall) und akzeptiert Fehlalarme. Ein Spam-Filter entscheidet genau andersrum. Der „beste“ Schwellwert steht nie im Code — er kommt aus der Anwendung.