sklearn - RandomForestClassifier vs ExtraTreesClassifier en scikit learn
random forest regression python (2)
¿Alguien puede explicar la diferencia entre RandomForestClassifier y ExtraTreesClassifier en scikit learn? He pasado un buen rato leyendo el periódico:
P. Geurts, D. Ernst. Y L. Wehenkel, "Árboles extremadamente aleatorios", Aprendizaje automático, 63 (1), 3-42, 2006
Parece que estas son las diferencias para ET:
1) Al elegir las variables en una división, se extraen muestras de todo el conjunto de entrenamiento en lugar de una muestra de arranque del conjunto de entrenamiento.
2) Las divisiones se eligen completamente al azar del rango de valores en la muestra en cada división.
El resultado de estas dos cosas son muchas más "hojas".
El clasificador de ExtraTrees siempre prueba divisiones aleatorias sobre fracción de características (a diferencia de RandomForest, que prueba todas las divisiones posibles sobre fracción de características)
Sí, ambas conclusiones son correctas, aunque la implementación de Random Forest en scikit-learn permite habilitar o inhabilitar el remuestreo de bootstrap.
En la práctica, las RF son a menudo más compactas que las ET. Los ET son generalmente más baratos de entrenar desde un punto de vista computacional pero pueden crecer mucho más. En algún momento, los ET pueden generalizar mejor que los RF, pero es difícil adivinar cuándo es el caso sin probar ambos primero (y sintonizar n_estimators
, max_features
y min_samples_split
por búsqueda de cuadrícula con validación cruzada).