Area Sotto la Curva (AUC)
L’Area Sotto la Curva (AUC) è una metrica fondamentale nel machine learning utilizzata per valutare le prestazioni dei modelli di classificazione binaria. Quant...
Una curva ROC valuta i classificatori binari tracciando il Tasso di Veri Positivi rispetto al Tasso di Falsi Positivi su diverse soglie, fondamentale per valutare le prestazioni dei modelli in IA e machine learning.
Una curva ROC è un grafico che illustra la capacità diagnostica di un sistema di classificazione binaria tracciando il Tasso di Veri Positivi (TPR) rispetto al Tasso di Falsi Positivi (FPR) su diverse impostazioni di soglia. Il TPR, noto anche come sensibilità o recall, misura la proporzione di reali positivi identificati correttamente, mentre il FPR rappresenta la proporzione di reali negativi erroneamente identificati come positivi.
Matematicamente:
Dove:
Il termine “Receiver Operating Characteristic” deriva dalla teoria del rilevamento dei segnali sviluppata durante la Seconda Guerra Mondiale per analizzare i segnali radar. Gli ingegneri utilizzavano le curve ROC per distinguere tra oggetti nemici e rumore. Nel tempo, le curve ROC hanno trovato applicazione in psicologia, medicina e machine learning per valutare test diagnostici e modelli di classificazione.
Nel machine learning e nell’IA, le curve ROC sono fondamentali per valutare le prestazioni dei classificatori binari. Forniscono una visione completa della capacità di un modello di distinguere tra classi positive e negative su tutte le soglie.
I modelli di classificazione spesso restituiscono probabilità o punteggi continui invece di etichette di classe definitive. Applicando soglie diverse a questi punteggi, si può modificare la sensibilità e la specificità del modello:
Tracciando il TPR rispetto al FPR per tutte le soglie possibili si ottiene la curva ROC, che mostra il compromesso tra sensibilità e specificità.
L’Area Under the ROC Curve (AUC) quantifica la capacità complessiva del modello di discriminare tra classi positive e negative. Un AUC di 0.5 indica nessuna capacità discriminante (equivalente al caso casuale), mentre un AUC di 1.0 rappresenta una discriminazione perfetta.
Le curve ROC e i punteggi AUC sono preziosi per confrontare diversi modelli di classificazione o per ottimizzare i parametri di un modello. Un modello con AUC più alto è generalmente preferito perché indica una migliore capacità di distinguere tra classi positive e negative.
Le curve ROC sono uno strumento visivo per valutare le prestazioni dei modelli, ma aiutano anche a scegliere una soglia ottimale che bilanci sensibilità e specificità in base alle esigenze specifiche di un’applicazione.
Per comprendere le curve ROC è necessaria familiarità con la matrice di confusione, che riassume le prestazioni di un modello di classificazione:
Predetto Positivo | Predetto Negativo | |
---|---|---|
Reale Positivo | Vero Positivo (TP) | Falso Negativo (FN) |
Reale Negativo | Falso Positivo (FP) | Vero Negativo (TN) |
La matrice di confusione è la base per calcolare TPR e FPR a diverse soglie.
Le curve ROC tracciano la sensibilità rispetto a 1 – specificità (cioè il FPR).
Nei test medici, le curve ROC sono utilizzate per valutare l’efficacia dei test diagnostici.
Esempio: Determinare la soglia per un biomarcatore nella diagnosi di una malattia.
Le curve ROC sono largamente impiegate nella valutazione degli algoritmi di classificazione nel machine learning.
Esempio: Rilevamento di email spam
Nell’automazione IA e nei chatbot, le curve ROC aiutano a perfezionare il riconoscimento delle intenzioni e l’accuratezza delle risposte.
Esempio: Classificazione delle intenzioni nei chatbot
Le istituzioni finanziarie usano le curve ROC per valutare i modelli che predicono i default sui prestiti.
Esempio: Previsione del rischio di default di un prestito
Per ogni soglia, il modello classifica le istanze come positive o negative, portando a diversi valori di TP, FP, TN e FN.
Variare la soglia dal punteggio più basso al più alto produce una serie di coppie TPR e FPR con cui tracciare la curva ROC.
L’AUC può essere calcolato utilizzando tecniche di integrazione numerica, come la regola dei trapezi, applicata alla curva ROC.
In dataset in cui le classi sono sbilanciate (ad esempio nel rilevamento di frodi con pochi casi positivi), le curve ROC possono dare una visione eccessivamente ottimistica delle prestazioni del modello.
In questi casi, le curve Precision-Recall (PR) sono più informative.
Le curve PR tracciano la precisione rispetto al recall, dando una visione migliore delle prestazioni del modello su dataset sbilanciati.
Nei sistemi IA, in particolare quelli che coinvolgono compiti di classificazione, le curve ROC forniscono indicazioni essenziali sulle prestazioni dei modelli.
Sfruttando l’analisi delle curve ROC, gli sviluppatori IA possono migliorare l’interazione con gli utenti.
Le curve ROC possono essere utilizzate anche per valutare l’equità dei modelli.
Diversi software statistici e linguaggi di programmazione offrono funzioni per calcolare e tracciare le curve ROC.
roc_curve
e auc
.pROC
e ROCR
facilitano l’analisi ROC.from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# y_true: etichette binarie reali
# y_scores: probabilità o punteggi previsti
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
roc_auc = auc(fpr, tpr)
# Tracciamento
plt.figure()
plt.plot(fpr, tpr, color='blue', lw=2, label='Curva ROC (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='grey', lw=2, linestyle='--')
plt.xlabel('Tasso di Falsi Positivi')
plt.ylabel('Tasso di Veri Positivi')
plt.title('Receiver Operating Characteristic (ROC)')
plt.legend(loc='lower right')
plt.show()
Le curve ROC possono essere fuorvianti quando ci si trova davanti a dataset altamente sbilanciati. In questi casi si può ottenere un TPR elevato insieme a un FPR proporzionalmente alto, che non è accettabile nella pratica.
Le curve ROC considerano tutte le soglie possibili ma non indicano quale sia ottimale per una situazione specifica.
Un AUC vicino a 1.0 può suggerire prestazioni eccellenti, ma senza considerare il contesto (ad esempio la distribuzione delle classi e i costi degli errori), può portare a una eccessiva fiducia nel modello.
Sebbene le curve ROC siano preziose, in alcune situazioni altre metriche possono essere più adatte.
Utili per dataset sbilanciati in cui la classe positiva è di principale interesse.
La media armonica tra precisione e recall, che fornisce una metrica unica per valutare il bilanciamento tra le due.
Una misura equilibrata che può essere usata anche quando le classi hanno dimensioni molto diverse.
La curva Receiver Operating Characteristic (ROC) è uno strumento fondamentale per valutare le prestazioni dei classificatori binari. È ampiamente utilizzata in vari campi tra cui la medicina, il machine learning e la statistica. Di seguito alcuni articoli scientifici rilevanti che esplorano diversi aspetti delle curve ROC e delle loro applicazioni:
Receiver Operating Characteristic (ROC) Curves
The Risk Distribution Curve and its Derivatives
Conditional Prediction ROC Bands for Graph Classification
Una curva ROC (Receiver Operating Characteristic) è un grafico che illustra la capacità diagnostica di un sistema di classificazione binaria tracciando il Tasso di Veri Positivi rispetto al Tasso di Falsi Positivi su diverse impostazioni di soglia.
Le curve ROC forniscono una visione completa della capacità di un modello di distinguere tra classi, aiutano nella selezione delle soglie ottimali e sono essenziali per confrontare le prestazioni di diversi modelli.
AUC sta per Area Under the Curve e quantifica la capacità complessiva del modello di discriminare tra classi positive e negative. Un AUC più alto indica prestazioni migliori.
Le curve Precision-Recall sono più informative delle curve ROC quando si lavora con set di dati sbilanciati, poiché si concentrano sulle prestazioni relative alla classe positiva.
Utilizzando le curve ROC, gli sviluppatori possono perfezionare la classificazione delle intenzioni e l'accuratezza delle risposte nei chatbot, ottimizzando le soglie per bilanciare falsi positivi e veri positivi per una migliore esperienza utente.
Sfrutta l'analisi delle curve ROC e gli strumenti di IA per ottimizzare i tuoi modelli di classificazione e automatizzare i tuoi workflow con FlowHunt.
L’Area Sotto la Curva (AUC) è una metrica fondamentale nel machine learning utilizzata per valutare le prestazioni dei modelli di classificazione binaria. Quant...
Il R-quadro corretto è una misura statistica utilizzata per valutare la bontà di adattamento di un modello di regressione, tenendo conto del numero di predittor...
L'F-Score, noto anche come F-Misura o F1 Score, è una metrica statistica utilizzata per valutare l'accuratezza di un test o modello, in particolare nella classi...