0Pricing
Learn AI with Python · Lezione

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 = predicted

Precisione

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 tradeoff

Precisione 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

  1. Strategie di cross-validation
  2. Approfondimento sulle metriche di classificazione
  3. Grid search e random search
  4. Ottimizzazione bayesiana con Optuna
← Torna a Learn AI with Python