Erfordert die Modellierung mit Random Forests eine Kreuzvalidierung?

23

Soweit ich gesehen habe, gehen die Meinungen darüber auseinander. Best Practice würde sicherlich die Verwendung von Kreuzvalidierung vorschreiben (insbesondere wenn RFs mit anderen Algorithmen auf demselben Datensatz verglichen werden). Andererseits besagt die ursprüngliche Quelle, dass die Tatsache, dass der OOB-Fehler während des Modelltrainings berechnet wird, als Indikator für die Leistung des Testsatzes ausreicht. Sogar Trevor Hastie sagte kürzlich in einem Gespräch, dass "Random Forests eine kostenlose gegenseitige Validierung ermöglichen". Das ist für mich intuitiv sinnvoll, wenn ich ein RF-basiertes Modell in einem Datensatz trainieren und verbessern möchte.

Kann jemand bitte die Argumente für und gegen die Notwendigkeit einer Kreuzvalidierung mit zufälligen Wäldern darlegen?

Neuron
quelle
Fragen, die explizit nach Meinungen suchen, sind auf Stack-Exchange-Sites generell nicht empfehlenswert. Oder suchen Sie eine theoretische Grundlage für die eine oder andere Position.
image_doctor
2
Random Forests übertreffen mit geringerer Wahrscheinlichkeit die anderen ML-Algorithmen, es sollte jedoch dennoch eine Kreuzvalidierung (oder eine andere Form der Evaluierung) empfohlen werden.
David
Ich denke, Sie sollten diese Frage auf Statistiker SO stellen: stats.stackexchange.com
Marcin Kosiński
Ich würde gerne @David unterstützen ... auf die eine oder andere Weise werden Sie eine Quervalidierung durchführen.
Könnten Sie eine Referenz für die behauptete Aussage von Trevor Hastie angeben?
Tipanverella

Antworten:

7

Standardmäßig erfasst der Zufallswald 2/3 der Daten für das Training und die Pause zum Testen auf Regression und fast 70% der Daten für das Training und die Pause zum Testen während der Klassifizierung. Da die Variablenauswahl während jeder Baumaufteilung nach dem Zufallsprinzip ausgewählt wird, ist sie im Gegensatz zu keiner Überanpassung anfällig Andere Modelle. Wenn Sie CV mit nfolds in sklearn verwenden möchten, können Sie dennoch das Konzept des Hold-Out-Sets wie oob_score (out of bag) = True verwenden, das die Modellleistung mit oder ohne CV anzeigt. Auf den Punkt gebracht kann mit oob_score = True mit oder ohne nfolds selbst festgestellt werden, ob die Verwendung von CV für Ihre Daten gut ist. Wenn Ihr Ziel einer bestimmten Verteilung folgt und Sie nicht viele Beobachtungsdaten bei sich haben, gibt die Verwendung von CV keine Ergebnisse viel Verbesserung.

0xF
quelle
5

Ein wesentlicher Unterschied besteht darin, dass durch die Kreuzvalidierung sichergestellt wird, dass alle Proben in den Trainings- und Testsätzen angezeigt werden, sodass 100% Ihrer Daten zu einem bestimmten Zeitpunkt für das Training und zum Testen verwendet werden.

Abhängig von der Größe Ihres Datasets garantiert das Bootstrapping (Sampling mit Ersetzung), das in der zufälligen Gesamtstruktur auftritt, nicht, dass die Aufteilungen, die die Bäume sehen, alle Instanzen enthalten. Wenn Sie genügend Bäume in Ihrem Wald haben, sollte die OOB-Schätzung asymptotisch zum besten OOB-Schätzwert konvergieren.

Die Genauigkeit beider Methoden hängt zu einem gewissen Grad von den Daten ab. Daher ist es möglicherweise ratsam, beide Methoden mit den Daten zu vergleichen, die Sie vor sich haben, und zu prüfen, ob die CV- und RF-OOB-Schätzungen ähnliche Werte ergeben.

Wenn dies nicht der Fall ist, lohnt es sich, weitere Schätzungen der tatsächlichen Fehlerrate vorzunehmen, möglicherweise durch viel höhere Werte von K in CV.

image_doctor
quelle
3

Ich habe einige Tests mit einem Datensatz von 50k Zeilen durchgeführt sklearn.RandomForestRegressor.

Ich erhalte signifikant unterschiedliche Werte - ich verwende eine normalisierte Gini für die Metrik - abhängig davon, ob ich rf.oob_prediction_(0,2927) oder einen KFold-Lebenslauf (0,3258 für 7-fach und 0,3236 für 3-fach) verwende.

In diesem Zusammenhang scheint es Ihnen wichtig zu sein, "insbesondere wenn Sie RFs mit anderen Algorithmen auf demselben Dataset vergleichen", statt sich auf die OOB-Vorhersage zu verlassen, einen manuellen Lebenslauf zu verwenden.

Inversion
quelle