Soweit ich gesehen habe, neigen die Meinungen dazu dazu. Best Practice würde sicherlich die Verwendung einer Kreuzvalidierung vorschreiben (insbesondere beim Vergleich von RFs mit anderen Algorithmen im selben Datensatz). Andererseits gibt die ursprüngliche Quelle an, dass die Tatsache, dass der OOB-Fehler während des Modelltrainings berechnet wird, ein ausreichender Indikator für die Leistung des Testsatzes ist. Sogar Trevor Hastie sagt in einem relativ aktuellen Gespräch, dass "Random Forests eine kostenlose Kreuzvalidierung bieten". Intuitiv ist dies für mich sinnvoll, wenn Sie ein RF-basiertes Modell an einem Datensatz trainieren und verbessern möchten.
Wie ist Ihre Meinung dazu?
Antworten:
Der OOB-Fehler wird berechnet, indem für jede Beobachtung nur die Bäume verwendet werden, die diese bestimmte Beobachtung nicht in ihrem Bootstrap-Beispiel hatten. siehe diese verwandte Frage . Dies entspricht in etwa einer zweifachen Kreuzvalidierung, da die Wahrscheinlichkeit, dass sich eine bestimmte Beobachtung in einer bestimmten Bootstrap-Stichprobe befindet, beträgt .1−(1−1N)N≈1−e−1≈0.6
Wie @Wouter hervorhebt, möchten Sie wahrscheinlich eine Kreuzvalidierung für die Parameteroptimierung durchführen, aber als Schätzung des Testsatzfehlers sollte der OOB-Fehler in Ordnung sein.
quelle