Approfondimento sulle metriche di classificazione
Matrice di confusione, precision, recall, F1, ROC-AUC e curva PR: scelta della metrica corretta.
Approfondimento sulle metriche di classificazione è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
L'accuratezza non basta
L'accuratezza è la frazione di predizioni corrette, ma può essere fuorviante con dati sbilanciati. Un modello che predice esclusivamente la classe maggioritaria può raggiungere il 99% di accuratezza, pur risultando inutile per la classe rara.
La matrice di confusione
La matrice di confusione suddivide le predizioni in veri positivi, falsi positivi, veri negativi e falsi negativi. È la base di tutte le altre metriche.
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
print(confusion_matrix(y_true, y_pred))
# rows = actual, columns = predictedPrecisione
Precisione = TP / (TP + FP). Di tutti gli elementi predetti come positivi, quanti lo sono davvero? Una precisione elevata significa pochi falsi allarmi. È importante quando i falsi positivi hanno un costo elevato (ad es. nei filtri antispam).
from sklearn.metrics import precision_score
print(precision_score(y_true, y_pred))Recall
Recall = TP / (TP + FN). Di tutti i positivi effettivi, quanti siamo riusciti a individuare? Un recall elevato significa poche mancate rilevazioni. È importante quando i falsi negativi hanno un costo elevato (ad es. nello screening delle malattie).
from sklearn.metrics import recall_score
print(recall_score(y_true, y_pred))Punteggio F1
Il punteggio F1 è la media armonica di precisione e recall: 2 * P * R / (P + R). Bilancia entrambe le metriche ed è utile quando serve un unico numero per dati sbilanciati.
from sklearn.metrics import f1_score, classification_report
print(f1_score(y_true, y_pred))
print(classification_report(y_true, y_pred))Curva ROC e AUC
La curva ROC rappresenta il tasso di veri positivi rispetto al tasso di falsi positivi per diverse soglie. roc_auc_score la riassume: 1.0 indica una classificazione perfetta, 0.5 una previsione casuale.
from sklearn.metrics import roc_auc_score
# needs probability scores, not hard labels
proba = model.predict_proba(Xte)[:, 1]
print(roc_auc_score(yte, proba))Curva precisione-recall
La curva PR rappresenta la precisione rispetto al recall per diverse soglie. È più informativa della ROC quando le classi sono fortemente sbilanciate, perché si concentra sulla classe positiva.
from sklearn.metrics import precision_recall_curve
prec, rec, thresh = precision_recall_curve(yte, proba)
# plot rec (x) vs prec (y) to see the tradeoffPrecisione media
average_precision_score riassume la curva PR in un unico numero (l'area sotto la curva PR). È la metrica riassuntiva preferita per la classificazione binaria sbilanciata.
from sklearn.metrics import average_precision_score
print(average_precision_score(yte, proba))ROC AUC e precisione media
La ROC AUC può apparire ottimistica sui dati sbilanciati, perché i veri negativi sono predominanti. La precisione media ignora i veri negativi e riflette in modo più veritiero le prestazioni sulla classe positiva rara.
Scegliere la metrica giusta
Utilizzi F1 o la precisione media per i problemi sbilanciati. Utilizzi la ROC AUC per valutare la qualità dell'ordinamento su dati bilanciati. Scelga la precisione quando i falsi allarmi sono costosi, il recall quando sono costose le mancate rilevazioni. Dichiari sempre la propria priorità prima di scegliere.
Regolazione della soglia
La maggior parte delle metriche dipende dalla soglia decisionale (predefinita a 0.5). Spostando la soglia si bilanciano precisione e recall. Utilizzi la curva PR per scegliere una soglia che soddisfi il requisito aziendale.
import numpy as np
# pick threshold for at least 0.9 precision
idx = np.argmax(prec >= 0.9)
chosen = thresh[idx]
preds = (proba >= chosen).astype(int)Verifica rapida
Verifichi la Sua comprensione delle metriche.
Riepilogo
Riepilogo: inizi dalla confusion_matrix. La precisione penalizza i falsi allarmi, il recall penalizza le mancate rilevazioni e il punteggio F1 li bilancia. roc_auc_score misura la qualità dell'ordinamento; average_precision_score e la curva PR sono migliori per i dati sbilanciati. Regoli la soglia in base alle proprie priorità.
Domande Frequenti
La lezione «Approfondimento sulle metriche di classificazione» è gratuita?
Sì — il testo completo di «Approfondimento sulle metriche di classificazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Approfondimento sulle metriche di classificazione»?
Matrice di confusione, precision, recall, F1, ROC-AUC e curva PR: scelta della metrica corretta. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Approfondimento sulle metriche di classificazione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Strategie di cross-validation
- Approfondimento sulle metriche di classificazione
- Grid search e random search
- Ottimizzazione bayesiana con Optuna