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:

0.50
Modell: krankModell: 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

  1. Precision — Wenn das Modell „krank“ sagt: wie oft stimmt das? TP / (TP + FP)
  2. Recall — Von allen wirklich kranken Blättern: wie viele findet es? TP / (TP + FN)
  3. F1 — Harmonisches Mittel aus beiden. Wird nur gut, wenn beide gut sind.
  4. 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 Denkfehlermacro 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 reinWelcher 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.