Distorsione dipendente dalla risposta-distribuzione nella regressione casuale della foresta


9

Sto usando il pacchetto randomForest in R (R versione 2.13.1, randomForest versione 4.6-2) per la regressione e ho notato una distorsione significativa nei miei risultati: l'errore di previsione dipende dal valore della variabile di risposta. I valori alti sono sottostimati e quelli bassi sono sovrastimati. Inizialmente sospettavo che questa fosse una conseguenza dei miei dati, ma il semplice esempio che segue suggerisce che ciò è inerente all'algoritmo della foresta casuale:

n = 1000; 
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1) 
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)

Sospetto che il pregiudizio dipenda dalla distribuzione della risposta, ad esempio, se x1è distribuito uniformemente, non c'è pregiudizio; se x1è distribuito esponenzialmente, il bias è unilaterale. In sostanza, i valori della risposta alle code di una distribuzione normale sono anomali. Non sorprende che un modello abbia difficoltà a prevedere valori anomali. Nel caso di randomForest, un valore di risposta di estrema ampiezza dalla coda di una distribuzione ha meno probabilità di finire in una foglia terminale e il suo effetto sarà sbiadito nella media dell'insieme.

Si noti che ho provato a catturare questo effetto in un esempio precedente, "RandomForest in R code di regressione lineare". Questo è stato un cattivo esempio. Se il bias nell'esempio sopra è veramente inerente all'algoritmo, ne consegue che una correzione del bias potrebbe essere formulata data la distribuzione della risposta che si sta tentando di prevedere, risultando in previsioni più accurate.

I metodi basati su alberi, come la foresta casuale, sono soggetti a distorsioni della distribuzione della risposta? In tal caso, questo è precedentemente noto alla comunità delle statistiche e come viene solitamente corretto (ad esempio un secondo modello che utilizza come input i residui del modello distorto)?

La correzione di una distorsione dipendente dalla risposta è difficile perché, per natura, la risposta non è nota. Sfortunatamente, la risposta stimata / prevista spesso non condivide la stessa relazione con il bias.


Ho riflettuto su questa stessa domanda per quasi 12 mesi. Vedi stats.stackexchange.com/questions/21530/… e kaggle.com/forums/t/1106/random-forests-newbie-question . Concordo sul fatto che il problema sembra essere che i valori anomali non sono rappresentati bene dalle medie utilizzate come previsione in ciascun nodo. La regolazione della previsione o il modello nel nodo sembrano approcci ragionevoli, ma non sono sicuro di quale sia l'approccio standard.
redcalx,

Risposte:


4

È perfettamente come sospetti: il fatto che i nodi foglia contengano mezzi su un insieme di oggetti rende qualsiasi modello di albero di regressione restringe la distribuzione della risposta e rende impossibile qualsiasi estrapolazione. L'ensemble ovviamente non aiuta a farlo e di fatto peggiora la situazione.

La soluzione ingenua (e pericolosa a causa di un eccesso di adattamento) è di avvolgere il modello in una sorta di regressione classica che ridimensionerebbe la risposta alla sua distribuzione desiderata.

La soluzione migliore è uno dei modelli dell'albero modello in foglia, come ad esempio MOB nel pacchetto party. L'idea qui è che il partizionamento dello spazio delle caratteristiche dovrebbe finire quando il problema è semplificato non con un semplice valore (come nella struttura normale) ma con una semplice relazione (diciamo lineare) tra la risposta e alcuni predittori. Tale relazione può ora essere risolta inserendo un modello semplice che non disturberà la distribuzione o taglierà i valori estremi e sarebbe in grado di estrapolare.


Perché riscalare la distribuzione della risposta porterebbe a un overfitting? La relazione di ordinamento tra due output della foresta manterrà lo stesso ordine dopo averlo spinto attraverso un adattamento polinomiale per ridimensionarlo, quindi il processo decisionale dal modello non sarà influenzato se si basa la decisione su quantili dell'output.
Jase,

R2

3

Ho avuto esattamente lo stesso problema con l'accesso condizionale RF tramite il pacchetto sonaglio. Ho inviato un'e-mail a Graham Williams (autore di sonaglio), che ha gentilmente inoltrato la mia domanda agli autori della foresta, che hanno risposto e suggerito di giocare con due parametri che in realtà non sembrano essere referenziati da nessuna parte nella documentazione CRF, ma che comunque sembravano indirizzare il problema, ovvero minplit = 2 e minbucket = 1.


minsplit, Presumo tu intenda
smci il

2

Dovresti stimare il valore ottimale di mtry e sampsize minimizzando l '"errore convalidato in modo incrociato" fuori dal campione su una griglia di diversi mtry, parametri sampsize, per qualsiasi variabile di risposta corrispondente per un set fisso di funzionalità e quindi trarre delle conclusioni- in termini di risultati. È possibile creare una combinazione dei parametri della griglia utilizzando expand.grid.


2
Questo è un buon suggerimento per la costruzione di modelli, in generale parametri ottimizzati forniranno previsioni più accurate. Tuttavia, in questo caso il pregiudizio esiste indipendentemente dall'accordatura, per quanto ne so. Esiste un solo predittore, quindi mtry deve essere 1. Qualsiasi dimensione del campione inferiore a n serve solo per ingrandire il bias e la dimensione dei nodi ha scarso effetto.
RumbleB,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.