Czy ktoś może wyjaśnić różnicę między RandomForestClassifier a ExtraTreesClassifier w scikit Learn. Spędziłem sporo czasu czytając artykuł:
P. Geurts, D. Ernst. I L. Wehenkel, „Extremely randomized trees”, Machine Learning, 63 (1), 3-42, 2006
Wygląda na to, że są to różnice dla ET:
1) Podczas wybierania zmiennych w podziale, próbki są pobierane z całego zestawu uczącego zamiast próbki typu bootstrap z zestawu uczącego.
2) Podziały są wybierane całkowicie losowo z zakresu wartości w próbie przy każdym podziale.
Rezultatem tych dwóch rzeczy jest znacznie więcej „liści”.
scikit-learn
random-forest
Denson
źródło
źródło
Odpowiedzi:
Tak, oba wnioski są poprawne, chociaż implementacja Random Forest w scikit-learn umożliwia włączenie lub wyłączenie ponownego próbkowania bootstrap.
W praktyce RF są często bardziej zwarte niż ET. Szkolenie ET jest generalnie tańsze z obliczeniowego punktu widzenia, ale może wzrosnąć znacznie. ET może kiedyś uogólniać lepiej niż terminali, ale trudno się domyślić, gdy jest to przypadek, nie próbując zarówno pierwszy (i strojenie
n_estimators
,max_features
amin_samples_split
przez cross-zatwierdzony poszukiwaniu siatki).źródło
Klasyfikator ExtraTrees zawsze testuje losowe podziały na ułamku cech (w przeciwieństwie do RandomForest, który testuje wszystkie możliwe podziały na ułamku cech)
źródło
Główna różnica między losowymi lasami a dodatkowymi drzewami (zwykle nazywanymi ekstremalnymi lasami losowymi) polega na tym, że zamiast obliczać lokalnie optymalną kombinację cecha / podział (dla lasu losowego), dla każdego rozważanego obiektu wybierana jest wartość losowa. za podział (na dodatkowe drzewa). Oto dobre źródło, aby dowiedzieć się więcej o różnicach między nimi w bardziej szczegółowy sposób Losowy las a dodatkowe drzewo.
źródło