F1-Score
Scopri come l’F1-Score bilancia precisione e richiamo per valutare i modelli di machine learning. Scopri come ottimizzare le prestazioni di Ultralytics YOLO26 per una maggiore accuratezza.
Il punteggio F1 è una metrica di prestazione fondamentale nel machine learning che combina precisione e richiamo in un'unica media armonica. È particolarmente utile per valutare i modelli di classificazione quando il dataset è sbilanciato o quando i falsi positivi e i falsi negativi hanno costi diversi. A differenza della semplice accuratezza, che può essere fuorviante se una classe domina il dataset, il punteggio F1 offre 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 sia il richiamo sono ragionevolmente elevati, rendendolo una metrica fondamentale in ambiti che spaziano dalla diagnostica medica al recupero delle informazioni.
Perché il punteggio F1 è 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 sono di gran lunga più numerosi delle anomalie. Un modello che prevedesse "normale" per ogni singolo input potrebbe raggiungere un'accuratezza del 99%, ma sarebbe inutile per rilevare i problemi effettivi. Il punteggio F1 affronta questo problema bilanciando due metriche contrapposte:
- Precisione: misura la qualità delle previsioni positive. Risponde alla domanda: "Di tutte le istanze che il modello ha classificato come positive, quante erano effettivamente positive?"
- Richiamo: misura la quantità di previsioni positive. Risponde alla domanda: "Di tutte le istanze effettivamente positive, quante ne ha identificato correttamente il modello?"
Poiché spesso esiste un compromesso — migliorare la precisione tende a ridurre il richiamo e viceversa — il punteggio F1 agisce come una metrica unificata per trovare un punto di equilibrio ottimale. Questo è fondamentale quando si ottimizzano i modelli usando l'ottimizzazione degli iperparametri, per garantire prestazioni solide in condizioni diverse.
Applicazioni nel mondo reale#
L'utilità del punteggio F1 si estende a diversi settori in cui il costo degli errori è significativo.
- Diagnostica medica: nell'IA in ambito sanitario, in particolare per attività come il rilevamento dei tumori, un falso negativo (la mancata rilevazione di un tumore) è potenzialmente letale, mentre un falso positivo (la segnalazione di tessuto benigno) provoca ansia inutile. Il punteggio F1 aiuta i ricercatori a ottimizzare modelli come YOLO26 per garantire che il sistema sia sufficientemente sensibile da rilevare le malattie senza sovraccaricare i medici con falsi allarmi.
- Recupero delle informazioni e ricerca: i motori di ricerca e i sistemi di classificazione dei documenti utilizzano il punteggio F1 per valutare la rilevanza. Gli utenti vogliono visualizzare tutti i documenti rilevanti (richiamo elevato), ma non vogliono dover esaminare risultati irrilevanti (precisione elevata). Un punteggio F1 elevato indica che il motore recupera efficacemente le informazioni corrette senza creare confusione.
- Filtraggio dello spam: i servizi di posta elettronica utilizzano la classificazione del testo per separare lo spam. Il sistema deve individuare le e-mail di spam (richiamo), ma soprattutto non deve etichettare come posta indesiderata le e-mail di lavoro importanti (precisione). Il punteggio F1 funge da principale riferimento per questi filtri.
Calcolo del punteggio F1 con Ultralytics#
I moderni framework di computer vision semplificano il calcolo di queste metriche. Durante l'addestramento dei modelli di rilevamento degli oggetti, il punteggio F1 viene calcolato automaticamente nella fase di validazione. La Ultralytics Platform visualizza queste metriche in grafici in tempo reale, consentendo agli utenti di osservare la curva del punteggio F1 rispetto a diverse soglie di confidenza.
Ecco come puoi accedere alle metriche di validazione, inclusi i componenti del punteggio F1, usando 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}")Punteggio F1 e metriche correlate#
Capire in che modo il punteggio F1 differisce dagli altri criteri di valutazione è essenziale per scegliere lo strumento giusto per il tuo progetto.
- Differenza rispetto all'accuratezza: l'accuratezza tratta tutti gli errori allo stesso modo. Il punteggio F1 è superiore per i dataset sbilanciati perché si concentra sulle prestazioni della classe positiva (la classe minoritaria di interesse).
- Relazione con mAP: la precisione media (mAP) è lo standard per confrontare i modelli di rilevamento degli oggetti su tutte le soglie di confidenza. Tuttavia, il punteggio F1 viene spesso utilizzato per determinare la soglia di confidenza ottimale per la distribuzione. Potresti scegliere la soglia in corrispondenza del punto di massimo della curva F1 per distribuire la tua applicazione.
- Matrice di confusione: la matrice di confusione fornisce i conteggi grezzi (veri positivi, falsi positivi, ecc.) da cui viene ricavato il punteggio F1. Mentre la matrice offre dettagli granulari, il punteggio F1 fornisce una singola statistica riepilogativa per un confronto rapido.
- ROC-AUC: l'area sotto la curva (AUC) misura la separabilità su tutte le soglie. Il punteggio F1 è generalmente preferibile a ROC-AUC quando la distribuzione delle classi è fortemente sbilanciata (ad esempio, nel rilevamento delle frodi, dove le frodi sono rare).
Migliorare il tuo punteggio F1#
Se il tuo modello presenta un punteggio F1 basso, diverse strategie possono essere d'aiuto. L'aumento dei dati può aumentare la varietà degli esempi positivi, aiutando il modello a generalizzare meglio. L'impiego del transfer learning da modelli di base solidi consente alla rete di sfruttare caratteristiche apprese in precedenza. Inoltre, modificare la soglia di confidenza durante l'inferenza può spostare manualmente l'equilibrio tra precisione e richiamo per massimizzare il punteggio F1 per il tuo specifico caso d'uso.








