Gibt es eine Formel oder Regel zur Bestimmung der richtigen Größe für einen randomForest?

13

Ich spiele mit einem randomForest und habe festgestellt, dass das Erhöhen von sampSize im Allgemeinen zu einer besseren Leistung führt. Gibt es eine Regel / Formel / etc, die vorschlägt, wie die optimale Größe von sampSize sein soll, oder handelt es sich um eine Versuchs- und Irrtumssache? Ich denke, eine andere Art, es zu formulieren; Was sind meine Risiken, zu klein oder zu groß zu sein (Überanpassung?)?


Diese Frage bezieht sich auf die R-Implementierung einer zufälligen Gesamtstruktur im randomForestPaket. Die Funktion randomForesthat einen Parameter, sampSizeder in der Dokumentation als beschrieben ist

Größe (n) der zu zeichnenden Probe. Wenn für die Klassifizierung Sampsize ein Vektor der Länge der Anzahl der Schichten ist, wird die Abtastung nach Schichten geschichtet, und die Sampsize-Elemente geben die aus den Schichten zu ziehenden Zahlen an.

kreischeule
quelle

Antworten:

21

Im Allgemeinen dient die Stichprobengröße für eine zufällige Gesamtstruktur als Kontrolle für den "Grad der Zufälligkeit" und somit als Mittel zum Anpassen des Kompromisses zwischen Bias und Varianz. Das Erhöhen der Stichprobengröße führt zu einer "weniger zufälligen" Gesamtstruktur und neigt daher zur Überanpassung. Durch Verringern der Stichprobengröße werden die Unterschiede zwischen den einzelnen Bäumen im Wald vergrößert, wodurch eine Überanpassung verhindert wird. Dies geht jedoch in der Regel zu Lasten der Modellleistung. Ein nützlicher Nebeneffekt ist, dass geringere Stichprobengrößen die für das Training des Modells erforderliche Zeit verkürzen.

Die übliche Faustregel für die beste Stichprobengröße lautet "Bootstrap-Stichprobe", eine Stichprobe, deren Größe der des Originaldatensatzes entspricht, die jedoch durch Ersetzung ausgewählt wurde, sodass einige Zeilen nicht ausgewählt werden und andere mehrmals ausgewählt werden. Dies bietet in der Regel eine nahezu optimale Leistung und ist die Standardeinstellung in der Standard-R-Implementierung. In realen Anwendungen kann es jedoch vorkommen, dass das Anpassen der Stichprobengröße zu einer Leistungsverbesserung führt. Wählen Sie im Zweifelsfall die geeignete Stichprobengröße (und andere Modellparameter) mithilfe der Kreuzvalidierung aus.

Martin O'Leary
quelle
2

Ich habe über Nacht 4500 zufällige Wälder mit einigen zufälligen Parametereinstellungen durchlaufen lassen:

Regressionsproblem, Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5 bei dem alle xunabhängig von einer Normalverteilung abgetastet werden, sd = 1, mean = 1

Ytotal = Ysignal + Yerror

wo Yerror = rnorm(n.observations,sd=sd(Ysignal))*noise.factor

theoretical.explainable.variance"TEV" = var(Ysignal= / var(Ytotal)

randomForest.performance = explained.variance(OOB cross-validation) / TEV

Datensätze wurden aus dem Regressionsproblem entnommen, und das hinzugefügte Rauschen n.obswar eine Zufallszahl zwischen 1000 und 5000 n.extra.dummy.variableszwischen 1 und 20

ntree immer 1000

sample_replacement immer true

mtryist 5 bis 25, begrenzt durch n.obs noise.factorzwischen 0 und 9

samplesize.ratio eine Zufallszahl zwischen 10% und 100%, die Verhältnisgröße jedes Bootstraps

Alle Models wurden gerne geschult rfo = randomForest(x=X, y=Ytotal, <more args>)

die randomForest.performance, seine Fähigkeit , den höchsten Anteil des zu erklären , TEVnimmt im Allgemeinen , wenn samplesizeabsenkt , wenn das TEVweniger als 50% ist , und verringert wird, wenn TEVmehr als 50% beträgt.

Wenn Ihre randomForest-modelfitBerichte z. B. 15% Abweichung durch OOB-CV erklären und dies für Sie eine akzeptable Modellgenauigkeit ist, können Sie die Leistung wahrscheinlich ein wenig verbessern, indem Sie die sampsizeAnzahl der gegebenen Beobachtungen auf ein Drittel senken ntree > 1000.

Moral : Bei sehr verrauschten Daten ist es besser, Bäume zu dekorrelieren, als die Verzerrung zu verringern, indem Bäume mit maximaler Größe wachsen.

Soren Havelund Welling
quelle
1

Damit zufällige Gesamtstrukturen in neuen Daten genauso gut funktionieren wie in Trainingsdaten, ist die erforderliche Stichprobengröße enorm und beträgt häufig das 200-fache der Anzahl der Kandidaten- Features. Sehen Sie hier .

Frank Harrell
quelle
2
Herr Dr. Harrell, ich denke, OP fragt nach der Größe der für die Erstellung jedes einzelnen Baums verwendeten Neuabtastung und nicht nach der Gesamtgröße des Datensatzes.
Sycorax sagt Reinstate Monica