Kann jemand den Unterschied zwischen dem RandomForestClassifier und dem ExtraTreesClassifier in scikit lernen erklären. Ich habe viel Zeit damit verbracht, die Zeitung zu lesen:
P. Geurts, D. Ernst. Und L. Wehenkel, "Extrem randomisierte Bäume", Machine Learning, 63 (1), 3-42, 2006
Es scheint, dass dies der Unterschied für ET ist:
1) Bei der Auswahl von Variablen bei einer Aufteilung werden Stichproben aus dem gesamten Trainingssatz anstelle eines Bootstrap-Beispiels des Trainingssatzes gezogen.
2) Splits werden bei jedem Split vollständig zufällig aus dem Wertebereich in der Stichprobe ausgewählt.
Das Ergebnis dieser beiden Dinge sind viel mehr "Blätter".
scikit-learn
random-forest
denson
quelle
quelle
Antworten:
Ja, beide Schlussfolgerungen sind richtig, obwohl die Random Forest-Implementierung in scikit-learn es ermöglicht, das Bootstrap-Resampling zu aktivieren oder zu deaktivieren.
In der Praxis sind RFs oft kompakter als ETs. ETs sind aus rechnerischer Sicht im Allgemeinen billiger zu trainieren, können jedoch viel größer werden. Irgendwann verallgemeinern besser als MDEs ETs kann , aber es ist schwer zu erraten , wenn es der Fall ist , ohne beide erste Versuch (und Tuning
n_estimators
,max_features
undmin_samples_split
durch kreuzvalidierte Rastersuche).quelle
Der ExtraTrees-Klassifizierer testet immer zufällige Aufteilungen über einen Bruchteil von Features (im Gegensatz zu RandomForest, das alle möglichen Aufteilungen über einen Bruchteil von Features testet).
quelle
Der Hauptunterschied zwischen zufälligen Wäldern und zusätzlichen Bäumen (normalerweise als extreme zufällige Wälder bezeichnet) besteht darin, dass anstelle der Berechnung der lokal optimalen Kombination aus Merkmal und Teilung (für die zufällige Gesamtstruktur) für jedes betrachtete Merkmal ein zufälliger Wert ausgewählt wird für den Split (für die zusätzlichen Bäume). Hier ist eine gute Quelle, um mehr über ihren Unterschied im Detail zu erfahren. Zufälliger Wald gegen zusätzlichen Baum.
quelle