--- title: "F1-score: definizione" url: https://www.conseolente.it/f1-score-definizione/ aggiornato: 2026-11-08 descrizione: "L'F1-score misura la media armonica tra precisione e richiamo. Scopri come calcolarlo, quando usarlo e perché è cruciale su dataset sbilanciati." topic: "F1-score" --- # F1-score: definizione > Versione per assistenti AI. Pagina originale: [F1-score: definizione](https://www.conseolente.it/f1-score-definizione/?via=md) L’F1-score è il numero che indica quanto un modello di classificazione bilancia precisione e richiamo in un’unica cifra, utile quando l’accuratezza da sola darebbe un quadro falsato. Si ottiene calcolando la media armonica tra le due metriche e va da 0, prestazione nulla, a 1, prestazione perfetta. ## Cosa ricordare sull’F1-score? - **Cos’è:** la media armonica tra precisione e richiamo di un modello di classificazione. - **Intervallo di valori:** da 0, prestazione pessima, a 1, prestazione perfetta. - **Formula:** F1 = 2 × (precisione × richiamo) / (precisione + richiamo), equivalente a 2TP / (2TP + FP + FN). - **Quando conviene usarlo:** su dataset sbilanciati, dove un modello che ignora la classe rara può comunque mostrare un’accuratezza alta. - **Limite principale:** non considera i veri negativi, quindi in alcuni contesti va affiancato ad altre metriche. ![Diagramma che mostra precisione e richiamo che convergono nel calcolo dell'F1-score](https://www.conseolente.it/wp-content/uploads/2026/11/f1-score-definizione-1-1024x683.webp) La media armonica tiene insieme precisione e richiamo in un solo valore, invece di lasciarli separati. ## Cos’è l’F1-score e a cosa serve L’F1-score nasce nell’information retrieval e nella classificazione statistica e oggi è una delle metriche più usate per giudicare [il funzionamento del machine learning](https://www.conseolente.it/machine-learning-definizione-funzionamento-intelligenza-artificiale/) applicato alla classificazione: email da marcare come spam, transazioni sospette da segnalare, recensioni da filtrare, richieste di assistenza da smistare. Il modello assegna un’etichetta a ogni caso tramite [un algoritmo di classificazione](https://www.conseolente.it/algoritmo-logica-struttura-apprendimento/), e l’F1-score dice quanto quelle etichette sono affidabili, senza bisogno di leggere separatamente due numeri diversi. Il nome deriva dalla famiglia di formule Fβ: con β uguale a 1 precisione e richiamo pesano allo stesso modo, ed è per questo che la sigla porta il numero 1. L’F1-score coincide inoltre con il coefficiente di Sørensen-Dice, usato in altri ambiti, per esempio nell’analisi di immagini mediche, per misurare la sovrapposizione tra due insiemi di dati. Chi usa strumenti di [intelligenza artificiale](https://www.conseolente.it/consulente/intelligenza-artificiale/) per automatizzare il filtro delle recensioni, il rilevamento delle frodi nei pagamenti o la categorizzazione dei ticket di assistenza si trova prima o poi a dover rispondere a una domanda precisa: il classificatore che ho messo in produzione funziona davvero, o sta solo indovinando la classe più comune? L’F1-score risponde a questa domanda meglio di una semplice percentuale di risposte corrette, perché penalizza i modelli che trascurano la classe meno frequente. ## Perché si usa la media armonica e non quella aritmetica La media armonica penalizza i valori bassi molto più di quanto farebbe una media aritmetica, ed è proprio questo il motivo per cui l’F1-score la adotta: un modello con un valore pessimo su una delle due metriche non può nascondersi dietro un valore alto sull’altra. Prendi un modello con precisione pari a 1 (100%) e richiamo pari a 0,1 (10%). La media aritmetica darebbe (1 + 0,1) / 2 = 0,55, un valore che sembra una prestazione a metà strada. La media armonica, invece, restituisce F1 = 2 × (1 × 0,1) / (1 + 0,1) ≈ 0,18: il modello individua solo un caso positivo reale su dieci, e l’F1-score lo segnala senza mezze misure. Nel mio lavoro preferisco questa metrica proprio quando un cliente mi chiede “il modello funziona?” e la risposta non può limitarsi a dipendere dal numero che si guarda. L’F1-score alto richiede che precisione e richiamo siano alti insieme: se anche uno solo dei due crolla, il punteggio crolla con lui. ## Cosa sono precisione e richiamo, le due metriche dentro l’F1 La precisione è il rapporto tra i veri positivi e il totale delle previsioni positive: TP / (TP + FP). Risponde alla domanda “tra tutti i casi che il modello ha etichettato come positivi, quanti lo erano davvero?”. Il richiamo, chiamato anche recall o sensibilità, è il rapporto tra i veri positivi e il totale dei casi realmente positivi: TP / (TP + FN). Risponde a una domanda diversa: “tra tutti i casi positivi presenti nei dati, quanti ne ha trovati il modello?”. Le due metriche vanno quasi sempre in direzioni opposte. Alzare la soglia di classificazione per essere più selettivi aumenta la precisione ma fa perdere casi positivi, quindi abbassa il richiamo; abbassare la soglia per catturare più casi positivi alza il richiamo ma aumenta anche i falsi positivi, quindi abbassa la precisione. L’F1-score esiste proprio per non dover scegliere a occhio quale delle due privilegiare. Una definizione più estesa di precisione e richiamo, con gli altri usi che hanno fuori dal calcolo dell’F1, rientra nella [panoramica sulle metriche del machine learning](https://www.conseolente.it/machine-learning-definizione-funzionamento-intelligenza-artificiale/). ## F1-score contro accuratezza sui dataset sbilanciati L’accuratezza conta tutte le previsioni corrette, positive e negative, sul totale dei casi: (TP + TN) / totale. Su un dataset sbilanciato questo numero mente, perché un modello che predice sempre la classe più frequente può ottenere un’accuratezza alta senza aver imparato niente sulla classe rara. Un modello su un dataset con il 99% di campioni negativi che predice sempre “negativo” raggiunge il 99% di accuratezza ma 0% di richiamo, quindi 0% di F1-score (valore assegnato per convenzione, perché senza previsioni positive la precisione è indefinita); sullo stesso principio, con il 95% di campioni negativi un modello che predice sempre “negativo” arriva al 95% di accuratezza, con lo stesso richiamo nullo sulla classe positiva. | Scenario | Accuratezza | Richiamo | F1-score | | --- | --- | --- | --- | | 99% negativi, modello sempre “negativo” | 99% | 0% | 0% | | 95% negativi, modello sempre “negativo” | 95% | 0% | 0% | ### Se le classi sono sbilanciate: guarda l’F1-score, non solo l’accuratezza Capita spesso che chi avvia un progetto di rilevamento frodi o di moderazione automatica guardi prima l’accuratezza riportata dal fornitore del modello. Con classi sbilanciate quel numero da solo non basta a capire se il modello individua davvero i casi rari: la mia regola è chiedere sempre il richiamo sulla classe minoritaria insieme all’F1-score. ### Se le classi sono bilanciate: l’accuratezza resta un indicatore valido Quando le due classi hanno dimensioni simili, l’accuratezza non nasconde lo stesso problema e può restare la prima metrica da controllare, con l’F1-score come conferma secondaria. La differenza tra accuratezza e precisione riguarda numeratore e denominatore: l’accuratezza conta veri positivi e veri negativi su tutti i casi, la precisione conta solo i veri positivi sulle previsioni positive. Sono due domande diverse sullo stesso modello, non due nomi per la stessa cosa. L’F1-score non tiene conto dei veri negativi: in un problema dove anche riconoscere correttamente i casi negativi conta (per esempio un controllo di qualità su un lotto), questo limite va considerato affiancando altre metriche di valutazione che includono i veri negativi, come il coefficiente di correlazione di Matthews, e verificando i risultati con la [cross-validation per testare un modello su dati nuovi](https://www.conseolente.it/cross-validation-definizione-funzionamento/). ![Foglio di calcolo con i passaggi numerici per ottenere l'F1-score da una matrice di confusione](https://www.conseolente.it/wp-content/uploads/2026/11/f1-score-definizione-2-1024x683.webp) Dalla matrice di confusione alla formula finale: ogni passaggio usa solo i numeri del passaggio precedente. ## Come si calcola l’F1-score, passo per passo La formula dell’F1-score si scrive in due modi equivalenti: F1 = 2 × (precisione × richiamo) / (precisione + richiamo), oppure, usando direttamente i conteggi della matrice di confusione, F1 = 2TP / (2TP + FP + FN). Il secondo formato evita di calcolare precisione e richiamo come passaggi separati. 1. Costruisci la matrice di confusione del modello: veri positivi (TP), falsi positivi (FP), falsi negativi (FN), veri negativi (TN). 2. Calcola la precisione dividendo i veri positivi per la somma di veri positivi e falsi positivi. 3. Calcola il richiamo dividendo i veri positivi per la somma di veri positivi e falsi negativi. 4. Applica la formula della media armonica a precisione e richiamo per ottenere l’F1-score. Un esempio numerico completo, ripreso da una guida tecnica che ho consultato: su 100 casi totali, 90 sono realmente positivi e 10 negativi; il modello ne classifica 85 come positivi, di cui 80 lo sono davvero (TP) e 5 no (FP); i restanti 10 positivi reali finiscono tra le previsioni negative (FN), mentre i 5 negativi rimasti sono classificati correttamente (TN). La precisione risulta 80 / 85 = 0,94, il richiamo 80 / 90 = 0,89, l’accuratezza (80 TP + 5 TN) / 100 = 0,85 e l’F1-score, applicando la formula della media armonica a questi due valori, arriva a 0,91: un punteggio alto perché entrambe le metriche di partenza sono alte. Se il richiamo fosse sceso a 0,40 con la stessa precisione, l’F1-score non sarebbe stato la media dei due numeri (0,67): sarebbe sceso a circa 0,56, più vicino al valore più basso, perché la media armonica si avvicina sempre di più al numero peggiore della coppia. ## Le varianti dell’F1-score per più di due classi Quando le classi da prevedere sono più di due, l’F1-score binario non basta da solo: si calcola un punteggio per ogni classe trattandola come positiva rispetto a tutte le altre, poi si combinano i risultati in uno di questi tre modi. | Variante | Come aggrega | Quando ha senso usarla | | --- | --- | --- | | Micro-average | somma TP, FP, FN di tutte le classi insieme | quando conta la prestazione complessiva sul totale dei casi | | Macro-average | media semplice dell’F1 calcolato per ogni classe | quando ogni classe deve pesare uguale, anche se piccola | | Weighted-average | media pesata per il numero di casi di ciascuna classe | quando vuoi un valore per classe pesato sulla sua frequenza reale, accettando che le classi più grandi contino di più | Esiste anche una famiglia più ampia di formule, le Fβ: con β maggiore di 1 (per esempio F2) il richiamo pesa più della precisione, con β minore di 1 (per esempio F0,5) vale il contrario. Si usa F2 quando perdere un caso positivo costa più di un falso allarme, F0,5 quando è l’opposto. ## Calcolare l’F1-score con Python In Python il calcolo non va fatto a mano: la funzione f1_score della libreria [scikit-learn](https://www.conseolente.it/scikit-learn-cose-a-cosa-serve/) accetta le etichette reali e quelle previste dal modello e restituisce il punteggio. Il parametro average, impostato su micro, macro o weighted, decide quale delle varianti multiclasse applicare; lasciato al valore predefinito binary, la funzione lavora sulla classificazione binaria, mentre con None restituisce il punteggio di ogni singola classe. Il punteggio calcolato su un singolo addestramento non basta a giudicare un modello: per capire se il risultato si ripete su dati diversi serve ripetere il calcolo con la [cross-validation](https://www.conseolente.it/cross-validation-definizione-funzionamento/), che divide più volte i dati in addestramento e test prima di dare un F1-score medio su cui fidarsi davvero. ## Casi limite ed errori frequenti con l’F1-score L’F1-score vale esattamente 0 quando precisione o richiamo valgono 0: basta che uno dei due crolli del tutto perché il punteggio finale si azzeri, anche se l’altra metrica è perfetta. Vale esattamente 1 solo quando precisione e richiamo valgono entrambi 1, condizione rara fuori da esempi didattici. L’errore più frequente è leggere un F1-score alto come prova che il modello funziona su ogni classe: il punteggio standard riguarda solo la classe positiva scelta, e ignora del tutto i veri negativi. In un progetto dove anche la classe negativa conta, per esempio nel controllo qualità di un lotto di prodotti, un’unica cifra F1 non basta: in quei casi, in un testo enciclopedico che ho consultato, vengono citate come alternative il coefficiente di correlazione di Matthews e il Kappa di Cohen, pensati apposta per tenere conto anche dei veri negativi. Un’altra variante poco nota ma citata nella stessa fonte è la G-measure, nota anche come indice di Fowlkes-Mallows: al posto della media armonica usa la media geometrica di precisione e richiamo. È un’alternativa, non un sinonimo dell’F1-score: i due numeri coincidono solo in casi particolari. Confondere F1-score e accuratezza nelle slide di un report porta a conclusioni sbagliate quando il dataset è sbilanciato: sconsiglio di riportare l’accuratezza da sola in quei contesti, perché chi legge il report senza conoscere la metrica può crederla più affidabile di quanto sia. ## Domande frequenti sull’F1-score ### Cos’è l’F1 score? L’F1 score è la media armonica tra precisione e richiamo di un modello di classificazione, con un valore compreso tra 0 e 1. Un valore alto indica che il modello identifica correttamente i casi positivi senza generare troppi falsi allarmi. ### Come si calcola l’F1 score? Si calcola con la formula F1 = 2 × (precisione × richiamo) / (precisione + richiamo), oppure direttamente dai conteggi della matrice di confusione come 2TP / (2TP + FP + FN). Servono sempre i dati su veri positivi, falsi positivi e falsi negativi. ### Perché si usa la media armonica invece di quella aritmetica? La media armonica penalizza i valori bassi più della media aritmetica: se precisione o richiamo sono vicini a 0, l’F1-score si abbassa drasticamente, mentre una media aritmetica nasconderebbe lo squilibrio facendo la semplice media dei due numeri. ### Quando conviene usare l’F1-score invece dell’accuratezza? Conviene usarlo sui dataset sbilanciati, dove una classe è molto più rara dell’altra, come nel rilevamento di frodi o nelle diagnosi mediche: in questi casi l’accuratezza può restare alta anche se il modello ignora completamente la classe rara. ### Cosa significa la sigla F1? Il numero 1 indica il valore del parametro β nella formula generale Fβ, dove precisione e richiamo pesano allo stesso modo. Con β diverso da 1 si ottengono le varianti F2 e F0,5, che spostano il peso verso richiamo o precisione. ### Qual è la differenza tra F1-score, precisione e recall? Precisione e richiamo misurano due aspetti separati di un modello, calcolati sulla stessa matrice di confusione ma con denominatori diversi; l’F1-score li unisce in un solo numero tramite la media armonica, utile quando serve un unico indicatore per confrontare più modelli. ### Quali sono le varianti dell’F1-score per la classificazione multiclasse? Le tre varianti principali sono micro-average, che somma i conteggi di tutte le classi, macro-average, che fa la media semplice dei punteggi per classe, e weighted-average, che pesa ogni classe in base al numero di casi che contiene. ## Fonti e riferimenti - [F-score](https://en.wikipedia.org/wiki/F-score/) en.wikipedia.org - secondo [tutorial su come calcolare l’F1 score in Python con scikit-learn](https://www.datacamp.com/it/tutorial/f1-score/), datacamp.com