Distribuzione normale e foresta casuale

Oct 29 2020

Ho una grande tabella in dataframe (600k righe) che ha la colonna y (la variabile che voglio prevedere) e altre 4 altre colonne che sono la X. Ho eseguito il regressore RF e ho ottenuto il core di 0,87 quando lo eseguo sul allenarsi e testare.

Tuttavia, quando ho provato a prevedere un altro set di dati (che è molto simile, con 1 milione di righe) ho ottenuto un punteggio di 0,65. Quindi ho pensato che fosse overfitting. quando ho cercato di capire perché è successo, sono tornato alla distribuzione della colonna y, che assomiglia a questa:

la mia domanda è, può essere che, poiché i miei dati non hanno una distribuzione normale (o molto distorta ...), le prestazioni del mio modello sono cattive? Tutte le variabili devono avere una distribuzione normale? come viene calcolato il punteggio della regressione forestale casuale? il valore dell'ID è 0,25 e la previsione è 0,26 conta come previsione corretta?

Risposte

1 MykolaZotko Oct 29 2020 at 20:56

Se utilizzi algoritmi basati su alberi come foreste casuali, la distribuzione dei dati non dovrebbe essere un problema. Gli algoritmi lineari dipendono maggiormente dalla distribuzione delle variabili. Per verificare se si è in overfit, provare a prevedere i dati di allenamento e confrontare il risultato con i dati di test. Il punteggio dipende dalla metrica di valutazione. Se usi scikit-learnottieni R ^ 2 come metrica.

Il coefficiente R ^ 2 è definito come (1 - u / v), dove u è la somma residua dei quadrati ((y_true - y_pred) ** 2) .sum () ev è la somma totale dei quadrati ((y_true - y_true.mean ()) ** 2) .sum ().