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.


FAQ sulla Curva ROC

Una Curva ROC (Receiver Operating Characteristic) è uno strumento utilizzato per valutare le prestazioni di un modello di Machine Learning mostrando la relazione tra il tasso di veri positivi (TPR) e il tasso di falsi positivi (FPR) al variare delle soglie di classificazione.

Il TPR è il tasso con cui il classificatore prevede correttamente “positivo” per osservazioni che sono effettivamente positive.

L'FPR è il tasso con cui il classificatore prevede erroneamente “positivo” per osservazioni che sono in realtà negative.

Più la Curva ROC è vicina all'angolo superiore sinistro, migliori sono le prestazioni del classificatore. Un classificatore perfetto presenta un TPR pari a 1 e un FPR pari a 0, risultando in una curva che passa per l'angolo superiore sinistro.

Ciascun punto di una Curva ROC rappresenta i valori di FPR e TPR corrispondenti a una determinata soglia di classificazione nell'intervallo [0,1].

Sì. L'app Classification Learner in MATLAB consente di specificare classi diverse per tracciare Curve ROC relative a problemi di classificazione multiclasse con più di due classi di output distinte.

È possibile calcolare Curve ROC in MATLAB utilizzando la funzione perfcurve di Statistics and Machine Learning Toolbox oppure generarle automaticamente tramite l'app Classification Learner.

Le Curve ROC sono utilizzate più comunemente per problemi di classificazione binaria e vengono spesso impiegate insieme alla cross-validation per valutare le prestazioni del modello su dati di validazione o di test.


Vedere anche: cross-validation