F1-Score
Scopri come l'F1-Score bilancia precisione e recall per valutare i modelli di apprendimento automatico. Scopri come ottimizzare le prestazioni di Ultralytics YOLO26 per una migliore accuratezza.
L'F1-Score è una metrica di performance fondamentale nel machine learning che combina precisione e recall in un'unica media armonica. È particolarmente utile per valutare modelli di classificazione in cui il dataset è sbilanciato o dove i falsi positivi e i falsi negativi comportano costi diversi. A differenza della semplice accuratezza, che può essere fuorviante se una classe domina il dataset, 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 recall sono ragionevolmente alti, rendendolo una metrica essenziale in campi che vanno dalla diagnostica medica al recupero delle informazioni.
Link to this sectionPerché l'F1-Score è importante nel Machine Learning#
In molti scenari reali, conoscere semplicemente la percentuale di previsioni corrette (accuratezza) non è sufficiente. Ad esempio, nel rilevamento delle anomalie, i casi normali superano di gran lunga le anomalie. Un modello che prevede "normale" per ogni singolo input potrebbe ottenere un'accuratezza del 99%, ma sarebbe inutile per rilevare problemi reali. L'F1-Score risolve questo problema bilanciando due metriche concorrenti:
- Precision: Misura la qualità delle previsioni positive. Risponde alla domanda: "Di tutte le istanze che il modello ha etichettato come positive, quante erano effettivamente positive?"
- Recall: Misura la quantità delle previsioni positive. Risponde alla domanda: "Di tutte le istanze positive effettive, quante ne ha identificate correttamente il modello?"
Poiché esiste spesso un compromesso — migliorare la precisione tende ad abbassare il recall e viceversa — l'F1-Score funge da metrica unificata per trovare un punto di equilibrio ottimale. Questo è fondamentale quando si ottimizzano i modelli utilizzando l'ottimizzazione degli iperparametri per garantire prestazioni robuste in condizioni diverse.
Link to this sectionApplicazioni nel mondo reale#
L'utilità dell'F1-Score si estende a vari settori in cui il costo dell'errore è significativo.
- Medical Diagnostics: In AI in healthcare, specifically for tasks like tumor detection, a false negative (missing a tumor) is life-threatening, while a false positive (flagging benign tissue) causes unnecessary anxiety. The F1-Score helps researchers optimize models like YOLO26 to ensure that the system is sensitive enough to catch diseases without overwhelming doctors with false alarms.
- Information Retrieval e Ricerca: I motori di ricerca e i sistemi di classificazione dei documenti utilizzano l'F1-Score per valutare la pertinenza. Gli utenti vogliono vedere tutti i documenti rilevanti (recall elevato) ma non vogliono vagliare risultati irrilevanti (precision elevata). Un F1-Score elevato indica che il motore sta recuperando efficacemente le informazioni corrette senza disordine.
- Spam Filtering: Email services use text classification to segregate spam. The system must catch spam emails (recall) but crucially must not label important work emails as junk (precision). The F1-Score serves as the primary benchmark for these filters.
Link to this sectionCalcolare l'F1-Score con Ultralytics#
I moderni framework di computer vision semplificano il calcolo di queste metriche. Durante l'addestramento di modelli di rilevamento oggetti, l'F1-Score viene calcolato automaticamente durante la fase di validazione. L'Ultralytics Platform visualizza queste metriche in grafici in tempo reale, consentendoti di vedere la curva dell'F1-Score rispetto a diverse soglie di confidenza.
Ecco come puoi accedere alle metriche di validazione, inclusi i componenti dell'F1-Score, utilizzando l'API 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}")Link to this sectionF1-Score vs. Metriche Correlate#
Comprendere in che modo l'F1-Score differisce da altri criteri di valutazione è essenziale per selezionare lo strumento giusto per il tuo progetto.
- Differenza dall'Accuratezza: L'Accuratezza tratta tutti gli errori allo stesso modo. L'F1-Score è superiore per dataset sbilanciati perché si concentra sulla performance della classe positiva (la classe di minoranza di interesse).
- Relazione con mAP: La Mean Average Precision (mAP) è lo standard per confrontare i modelli di rilevamento oggetti su tutte le soglie di confidenza. Tuttavia, l'F1-Score viene spesso utilizzato per determinare la soglia di confidenza ottimale per il deployment. Puoi scegliere la soglia in cui la curva F1 raggiunge il picco per distribuire la tua applicazione.
- Matrice di Confusione: La matrice di confusione fornisce i conteggi grezzi (veri positivi, falsi positivi, ecc.) da cui deriva l'F1-Score. Mentre la matrice fornisce dettagli granulari, l'F1-Score fornisce un'unica statistica riassuntiva per un confronto rapido.
- ROC-AUC: L'Area Under the Curve (AUC) misura la separabilità su tutte le soglie. L'F1-Score è generalmente preferito rispetto alla ROC-AUC quando hai una distribuzione delle classi altamente distorta (es. rilevamento di frodi dove le frodi sono rare).
Link to this sectionMigliorare il tuo F1-Score#
Se il tuo modello soffre di un F1-Score basso, diverse strategie possono aiutare. L'aumento dei dati può aumentare la varietà di esempi positivi, aiutando il modello a generalizzare meglio. Impiegare il transfer learning da modelli di base robusti consente alla rete di sfruttare funzionalità pre-apprese. Inoltre, regolare la soglia di confidenza durante l'inferenza può spostare manualmente l'equilibrio tra precision e recall per massimizzare l'F1-Score per il tuo caso d'uso specifico.






