La modellazione con foreste casuali richiede una convalida incrociata?


23

Per quanto ho visto, le opinioni tendono a differire su questo. Le migliori pratiche detterebbero certamente l'uso della convalida incrociata (soprattutto se si confrontano RF con altri algoritmi sullo stesso set di dati). D'altra parte, la fonte originale afferma che il fatto che l'errore OOB viene calcolato durante l'addestramento del modello è abbastanza un indicatore delle prestazioni del set di test. Perfino Trevor Hastie, in un colloquio relativamente recente, afferma che "Le foreste casuali forniscono una validazione incrociata gratuita". Intuitivamente, questo ha senso per me, se mi alleno e cerco di migliorare un modello basato su RF su un set di dati.

Qualcuno può esporre gli argomenti a favore e contro la necessità di convalida incrociata con foreste casuali?


Le domande che cercano esplicitamente opinioni sono generalmente sconsigliate su siti di scambio di stack, datascience.stackexchange.com/help/dont-ask , forse potresti riformulare la domanda per richiedere esempi a supporto dell'esperienza degli utenti? Oppure cerca una base teorica per una posizione o per l'altra.
image_doctor,

2
Le foreste casuali hanno meno probabilità di sovrautilizzare gli altri algoritmi ML, ma dovrebbe comunque essere raccomandata la convalida incrociata (o qualche forma di valutazione alternativa).
David,

Penso che dovresti porre questa domanda allo statistico SO: stats.stackexchange.com
Marcin

Vorrei secondare @David ... in un modo o nell'altro, farai una validazione incrociata.

Potresti fornire un riferimento per l'affermazione dichiarata da Trevor Hastie?
tipanverella,

Risposte:


7

Per impostazione predefinita, la foresta casuale raccoglie 2/3 dati per l'allenamento e il riposo per i test per la regressione e quasi il 70% dei dati per l'allenamento e il riposo per i test durante la classificazione. altri modelli Tuttavia, se si desidera utilizzare CV utilizzando nfolds in sklearn, è comunque possibile utilizzare il concetto di set di controllo come oob_score (out of bag) = True, che mostra le prestazioni del modello con o senza l'utilizzo di CV. Quindi, in poche parole, usare oob_score = True con o senza nfolds può dire se l'uso del CV è buono per i tuoi dati. Generalmente se il tuo target sta seguendo una certa distribuzione e non hai molti dati di osservazione con te, allora l'uso del CV non ti darà molto miglioramento.


5

Una differenza fondamentale è che la convalida incrociata garantisce che tutti i campioni vengano visualizzati nei set di training e test, quindi il 100% dei dati viene utilizzato ad un certo punto per la formazione e per i test.

A seconda della dimensione del set di dati il ​​bootstrap, il campionamento con la sostituzione, che si verificano nella foresta casuale non garantiranno le suddivisioni che gli alberi vedranno conterranno tutte le istanze. Se hai abbastanza alberi nella tua foresta, la stima OOB dovrebbe convergere asintoticamente verso il miglior valore di stima OOB.

L'accuratezza per entrambi i metodi dipenderà in una certa misura dai dati, quindi potrebbe essere prudente confrontare entrambi i metodi sui dati particolari che hai di fronte e vedere se le stime CV e RF OOB forniscono valori simili.

In caso contrario, varrebbe la pena esplorare ulteriori stime del tasso di errore reale, forse con valori molto più alti di K in CV.


3

Ho fatto alcuni test su un set di dati di 50k righe, usando sklearn.RandomForestRegressor.

Ottengo punteggi significativamente diversi - sto usando un gini normalizzato per la metrica - a seconda che io usi rf.oob_prediction_(0.2927) o un CV KFold (0.3258 per 7 pieghe e 0.3236 per 3 volte).

Con ciò, sembra che il tuo punto su "specialmente se il confronto di RF con altri algoritmi sullo stesso set di dati" è una forte considerazione per l'utilizzo del CV manuale piuttosto che basarsi sulla previsione OOB.

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.