Contenuti del Corso
Regressione Lineare con Python
Regressione Lineare con Python
R-Quadro
Cos'è R-quadro
Abbiamo trattato alcune delle metriche più utilizzate per la regressione nel capitolo Metriche. Queste sono MSE, RMSE e MAE. Sono utili per confrontare modelli, ma quando si costruisce un solo modello, non è sempre chiaro se il punteggio ottenuto sia buono per il proprio dataset o se sia necessario continuare a provare altri modelli.
Fortunatamente esiste una metrica chiamata R-quadro che misura le prestazioni del modello su una scala da 0 a 1. R-quadro calcola la proporzione della varianza del target spiegata dal modello.
Il problema è che non possiamo calcolare direttamente la varianza spiegata. Tuttavia, possiamo calcolare la varianza non spiegata, quindi trasformeremo l'equazione sopra nel modo seguente:
Varianza Totale
La varianza totale è semplicemente la varianza del target, e possiamo calcolare la varianza del target utilizzando la formula della varianza campionaria dalla Statistica (ȳ è la media del target):
Ecco un esempio con visualizzazione. Le differenze tra il valore reale del target e la media del target sono evidenziate in arancione. Proprio come nel calcolo dell'SSR, si prende la lunghezza di ciascuna linea arancione, la si eleva al quadrato e la si aggiunge alla somma, ma ora si divide anche il risultato per m-1. In questo caso si ottiene una varianza totale di 11,07.
Varianza Non Spiegata
Ora è necessario calcolare la varianza che non è spiegata dal modello. Se il modello spiegasse tutta la varianza, tutti i punti si troverebbero sulla retta di regressione costruita. Questo accade raramente, quindi si vuole calcolare la varianza del target ma ora rispetto alla retta di regressione invece che alla media. Si utilizzerà la stessa formula ma si sostituirà ȳ con le previsioni del modello.
Ecco un esempio con visualizzazione:
Ora abbiamo tutte le informazioni necessarie per calcolare l'R-quadro:
Abbiamo ottenuto un punteggio R-quadro di 0,92, che è vicino a 1, quindi abbiamo un ottimo modello. Calcoleremo inoltre l'R-quadro per un altro modello.
L'R-quadro è più basso poiché il modello sottostima leggermente i dati.
R-quadro in Python
La classe sm.OLS
calcola per noi l'R-quadro. Possiamo trovarlo nella tabella summary()
qui.
In sintesi, l'R-quadro è una metrica per la regressione. Può assumere valori da 0 a 1. A differenza di altre metriche come MSE/MAE, un valore più alto è migliore (a meno che il modello non sia sovradattato). È possibile trovare l'R-quadro nella tabella summary()
della classe sm.OLS
.
Grazie per i tuoi commenti!