Scopri come F1-Score bilancia precisione e richiamo per valutare i modelli di machine learning. Scopri come ottimizzare le prestazioni Ultralytics per una maggiore accuratezza.
Il punteggio F1 è una metrica di prestazione fondamentale nell'apprendimento automatico che combina precisione e richiamo in un'unica media armonica. È particolarmente utile per valutare modelli di classificazione in cui il set di dati è sbilanciato o in cui i falsi positivi e i falsi negativi comportano costi diversi. A differenza della semplice accuratezza, che può essere fuorviante se una classe domina il set di dati, l'F1-Score fornisce una visione più equilibrata della capacità di un modello di identificare correttamente le istanze rilevanti riducendo al minimo gli errori. Penalizzando i valori estremi, garantisce che un punteggio elevato venga raggiunto solo quando sia la precisione che il richiamo sono ragionevolmente alti, rendendolo un parametro fondamentale in campi che vanno dalla diagnostica medica al recupero di informazioni.
In molti scenari reali, conoscere semplicemente la percentuale di previsioni corrette (accuratezza) non è sufficiente. Ad esempio, nel rilevamento delle anomalie, i casi normali sono di gran lunga superiori alle anomalie. Un modello che prevede "normale" per ogni singolo input potrebbe raggiungere un'accuratezza del 99%, ma sarebbe inutile per rilevare i problemi reali. Il punteggio F1 risolve questo problema bilanciando due metriche concorrenti:
Poiché spesso esiste un compromesso (migliorare la precisione tende a ridurre il richiamo e viceversa), l'F1-Score funge da metrica unificata per trovare un punto di equilibrio ottimale. Ciò è fondamentale quando si ottimizzano i modelli utilizzando l' ottimizzazione degli iperparametri per garantire prestazioni robuste in condizioni diverse.
L'utilità dell'F1-Score si estende a vari settori in cui il costo dell'errore è significativo.
I moderni framework di visione artificiale semplificano il calcolo di queste metriche. Durante l'addestramento dei modelli di rilevamento degli oggetti, il punteggio F1 viene calcolato automaticamente durante la fase di convalida. Ultralytics visualizza queste metriche in grafici in tempo reale, consentendo agli utenti di vedere la curva del punteggio F1 rispetto a diverse soglie di confidenza.
Ecco come è possibile accedere alle metriche di validazione, compresi i componenti dell'F1-Score, utilizzando Python :
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}")
Comprendere in che modo l'F1-Score differisce dagli altri criteri di valutazione è essenziale per selezionare lo strumento giusto per il tuo progetto.
Se il tuo modello presenta un punteggio F1 basso, esistono diverse strategie che possono aiutarti. L'aumento dei dati può aumentare la varietà di esempi positivi, aiutando il modello a generalizzare meglio. L'utilizzo del transfer learning da modelli di base robusti consente alla rete di sfruttare le caratteristiche pre-apprendite. Inoltre, la regolazione della soglia di confidenza durante l'inferenza può modificare manualmente l'equilibrio tra precisione e richiamo per massimizzare il punteggio F1 per il tuo caso d'uso specifico.