Curva ROC

Che cos’è una curva ROC?

Le curve ROC (Receiver Operating Characteristic) sono un importante strumento per la valutazione delle prestazioni di un modello di machine learning. Sono più frequentemente utilizzate per i problemi di classificazione binaria, quelli in cui sono presenti due classi di output distinte. La curva ROC mostra la relazione tra il tasso di veri positivi (TPR) per il modello e il tasso di falsi positivi (FPR). Il TPR è il tasso che il classificatore prevede come “positivo” per osservazioni che sono “positive”. L’FPR è il tasso che il classificatore prevede come “positivo” per osservazioni che in realtà sono “negative”. Un classificatore perfetto avrà un TPR pari a 1 e un FPR pari a 0.

È possibile calcolare le curve ROC in MATLAB® mediante la funzione perfcurve da Statistics and Machine Learning Toolbox™. Inoltre, l’app Classification Learner genera curve ROC per la valutazione delle prestazioni del modello. L’app consente di specificare varie classi da rappresentare graficamente, in modo da visualizzare le curve ROC per i problemi di classificazione multiclasse che presentano più di due classi di output distinte.

Il video dura 4:43

Come funzionano le curve ROC

La maggior parte dei modelli di machine learning per la classificazione binaria non genera solo 1 o 0 per le previsioni. Al contrario, genera un valore continuo che rientra nell’intervallo [0,1]. I valori pari o superiori a una certa soglia (ad esempio 0,5) vengono quindi classificati come 1, mentre i valori al di sotto di quella soglia vengono classificati come 0. I punti sulla curva ROC rappresentano l’FPR e il TPR per diversi valori di soglia.

La soglia selezionata può essere un qualsiasi valore compreso nell’intervallo [0,1] e le classificazioni derivanti variano in base al valore di tale soglia. Ad esempio, se la soglia è impostata sempre su 0, il modello prevede sempre 1 (qualsiasi valore pari o superiore a 0 viene classificato come 1), determinando così un TPR di 1 e un FPR di 1. All’altra estremità della curva ROC, se la soglia è impostata su 1, il modello prevede sempre 0 (qualsiasi valore inferiore a 1 viene classificato come 0), determinando così un TPR di 0 e un FPR di 0.

L’aspetto più interessante nella valutazione delle prestazioni di un modello di classificazione è quello che accade tra questi due casi estremi. In generale, più la curva ROC è spostata “in alto a sinistra”, migliore è il classificatore.

Le curve ROC sono solitamente utilizzate in combinazione con la cross-validation per valutare le prestazioni del modello sui dati di convalida o di test.

Curve ROC calcolate con la funzione perfcurve per (da sinistra a destra) un classificatore perfetto, un classificatore tipico e un classificatore che esegue solo una supposizione casuale.

Curve ROC calcolate con la funzione perfcurve per (da sinistra a destra) un classificatore perfetto, un classificatore tipico e un classificatore che esegue solo una supposizione casuale.

Vedere anche: cross-validation, machine learning