F1-Score
Erfahre, wie der F1-Score Präzision und Recall ausbalanciert, um Machine-Learning-Modelle zu bewerten. Entdecke, wie du die Leistung von Ultralytics YOLO26 für eine bessere Genauigkeit optimierst.
Der F1-Score ist eine wichtige Leistungskennzahl im maschinellen Lernen, die Präzision und Recall zu einem einzigen harmonischen Mittelwert kombiniert. Er eignet sich besonders zur Bewertung von Klassifikationsmodellen, wenn der Datensatz unausgewogen ist oder falsch-positive und falsch-negative Ergebnisse unterschiedliche Kosten verursachen. Anders als die einfache Genauigkeit, die irreführend sein kann, wenn eine Klasse im Datensatz dominiert, bietet der F1-Score eine ausgewogenere Einschätzung, wie gut ein Modell relevante Instanzen korrekt erkennt und gleichzeitig Fehler minimiert. Durch die Bestrafung extremer Werte stellt er sicher, dass ein hoher Score nur erreicht wird, wenn sowohl Präzision als auch Recall ausreichend hoch sind. Dadurch ist er eine Standardkennzahl in Bereichen von der medizinischen Diagnostik bis zum Information Retrieval.
Warum der F1-Score im maschinellen Lernen wichtig ist#
In vielen realen Szenarien reicht es nicht aus, nur den Prozentsatz korrekter Vorhersagen (Genauigkeit) zu kennen. Bei der Anomalieerkennung gibt es beispielsweise sehr viel mehr Normalfälle als Anomalien. Ein Modell, das für jede Eingabe „normal“ vorhersagt, könnte eine Genauigkeit von 99 % erreichen, wäre aber für die Erkennung tatsächlicher Probleme nutzlos. Der F1-Score begegnet diesem Problem, indem er zwei konkurrierende Kennzahlen ausbalanciert:
- Präzision: Sie misst die Qualität positiver Vorhersagen. Sie beantwortet die Frage: „Wie viele der Instanzen, die das Modell als positiv gekennzeichnet hat, waren tatsächlich positiv?“
- Recall: Er misst die Anzahl positiver Vorhersagen. Er beantwortet die Frage: „Wie viele der tatsächlich positiven Instanzen hat das Modell korrekt erkannt?“
Da häufig ein Zielkonflikt besteht – eine Verbesserung der Präzision senkt tendenziell den Recall und umgekehrt –, dient der F1-Score als einheitliche Kennzahl, um einen optimalen Gleichgewichtspunkt zu finden. Das ist entscheidend bei der Optimierung von Modellen mithilfe der Hyperparameteroptimierung, damit sie unter verschiedensten Bedingungen zuverlässig funktionieren.
Anwendungen in der Praxis#
Der Nutzen des F1-Scores erstreckt sich auf verschiedene Branchen, in denen Fehler erhebliche Kosten verursachen.
- Medizinische Diagnostik: In der KI im Gesundheitswesen, insbesondere bei Aufgaben wie der Tumorerkennung, ist ein falsch-negatives Ergebnis (ein übersehener Tumor) lebensbedrohlich, während ein falsch-positives Ergebnis (die Kennzeichnung von gutartigem Gewebe) unnötige Sorgen verursacht. Der F1-Score hilft Forschern, Modelle wie YOLO26 so zu optimieren, dass das System empfindlich genug ist, um Krankheiten zu erkennen, ohne Ärzte mit Fehlalarmen zu überlasten.
- Information Retrieval und Suche: Suchmaschinen und Systeme zur Dokumentklassifikation verwenden den F1-Score, um die Relevanz zu bewerten. Nutzer möchten alle relevanten Dokumente sehen (hoher Recall), aber nicht durch irrelevante Ergebnisse navigieren müssen (hohe Präzision). Ein hoher F1-Score zeigt, dass die Suchmaschine effektiv die richtigen Informationen abruft, ohne die Ergebnisse mit unnötigen Inhalten zu überladen.
- Spam-Filterung: E-Mail-Dienste verwenden Textklassifikation, um Spam auszusortieren. Das System muss Spam-E-Mails erkennen (Recall), darf aber wichtige geschäftliche E-Mails keinesfalls als Junk markieren (Präzision). Der F1-Score dient als wichtigste Vergleichskennzahl für diese Filter.
F1-Score mit Ultralytics berechnen#
Moderne Frameworks für Computer Vision vereinfachen die Berechnung dieser Kennzahlen. Beim Training von Objekterkennungsmodellen wird der F1-Score während der Validierungsphase automatisch berechnet. Die Ultralytics Platform visualisiert diese Kennzahlen in Echtzeitdiagrammen, sodass du die F1-Score-Kurve für verschiedene Konfidenzschwellen sehen kannst.
So kannst du mithilfe der Python-API auf Validierungskennzahlen einschließlich der Komponenten des F1-Scores zugreifen:
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on a dataset (metrics are computed automatically)
# This returns a validator object containing precision, recall, and mAP
metrics = model.val(data="coco8.yaml")
# Print the Mean Average Precision (mAP50-95), which correlates with F1 performance
print(f"mAP50-95: {metrics.box.map}")
# Access precision and recall arrays to manually inspect the balance
print(f"Precision: {metrics.box.p}")
print(f"Recall: {metrics.box.r}")F1-Score im Vergleich zu verwandten Kennzahlen#
Um das richtige Werkzeug für dein Projekt auszuwählen, musst du verstehen, wie sich der F1-Score von anderen Bewertungskriterien unterscheidet.
- Unterschied zur Genauigkeit: Die Genauigkeit behandelt alle Fehler gleich. Der F1-Score ist für unausgewogene Datensätze besser geeignet, weil er sich auf die Leistung der positiven Klasse konzentriert (der relevanten Minderheitsklasse).
- Beziehung zu mAP: Mittlere durchschnittliche Präzision (mAP) ist der Standard für den Vergleich von Objekterkennungsmodellen über alle Konfidenzschwellen hinweg. Der F1-Score wird jedoch häufig verwendet, um die optimale Konfidenzschwelle für den Einsatz zu bestimmen. Du kannst die Schwelle auswählen, bei der die F1-Kurve ihren Höchststand erreicht, und sie für deine Anwendung verwenden.
- Konfusionsmatrix: Die Konfusionsmatrix liefert die Rohanzahlen (richtig-positive, falsch-positive Ergebnisse usw.), aus denen der F1-Score abgeleitet wird. Während die Matrix detaillierte Informationen liefert, bietet der F1-Score eine einzelne zusammenfassende Kennzahl für schnelle Vergleiche.
- ROC-AUC: Die Fläche unter der Kurve (AUC) misst die Trennschärfe über alle Schwellenwerte hinweg. Der F1-Score wird im Allgemeinen gegenüber ROC-AUC bevorzugt, wenn die Klassenverteilung stark verzerrt ist, etwa bei der Betrugserkennung, wenn Betrugsfälle selten sind.
Deinen F1-Score verbessern#
Wenn dein Modell einen niedrigen F1-Score aufweist, können mehrere Strategien helfen. Datenerweiterung kann die Vielfalt positiver Beispiele erhöhen und dem Modell helfen, besser zu generalisieren. Der Einsatz von Transfer Learning mit robusten Basismodellen ermöglicht es dem Netzwerk, auf bereits erlernte Merkmale zurückzugreifen. Außerdem kannst du die Konfidenzschwelle während der Inferenz anpassen, um das Gleichgewicht zwischen Präzision und Recall manuell zu verschieben und den F1-Score für deinen konkreten Anwendungsfall zu maximieren.









