¿Cómo se compara XGBoost (aumento de gradiente) con Random Forest?

En primer lugar, tenga cuidado al comparar un algoritmo (bosque aleatorio) con una implementación (xgboost).

Ahora, si comparamos los rendimientos de dos implementaciones, xgboost, y decimos guardabosques (en mi opinión, la mejor implementación de bosque aleatorio), el consenso generalmente es que xgboost tiene el mejor rendimiento (con una velocidad similar). Puede buscar los resultados de las competencias anteriores de Kaggle en su blog para ver que es parte de casi todas las soluciones de los ganadores.

Editar: algunos detalles más sobre el rendimiento de ambos algoritmos.
Desde mi experiencia, el aumento de gradiente siempre funcionará al menos tan bien, en términos métricos, como un bosque aleatorio. La principal diferencia que encuentro en la práctica es que el aumento de gradiente requiere mucho más cuidado en la configuración. Mientras que es perfectamente posible aplicar “ciegamente” RF y terminar con un rendimiento decente, con muy pocas posibilidades de sobreajuste, no tiene mucho sentido entrenar xgboost sin validación cruzada. Tendrá que ajustar la profundidad máxima de los árboles y el factor de contracción (creo que en R y Python).

Nunca intenté ejecutar un bosque aleatorio puro en xgboost (debe establecer sus rondas en 1 y num_parallel_trees en la cantidad que desea), pero a veces un “bosque aleatorio impulsado” híbrido puede obtener muy buenos resultados.

Otra cosa a tener en cuenta es la viabilidad de ejecutar esos algoritmos en esta cantidad de datos. 6 GB es factible si su máquina es lo suficientemente buena, pero alcanzar 1 TB crea un nuevo conjunto de problemas. Deberá comenzar a pensar en la distribución de sus cálculos, a través de Spark (con un rendimiento cuestionable) o de las soluciones propias de XGBoost (pero con una clara falta de documentación), o buscar aprendizaje sin memoria, que XGBoost supuestamente permite, pero que nunca intenté. .

Los modelos de bolsas de bosques al azar, mientras que el impulso los promedia iterativamente con respecto al error. XGBoost extiende el impulso al imponer penalizaciones de regresión similares a la red elástica. Para el rendimiento, he descubierto que depende del problema.

Hola, es posible que desee consultar DART: http://www.jmlr.org/proceedings/

Básicamente, puede ver el bosque aleatorio como árboles potenciados con una tasa de deserción de 1. El documento muestra que ni 0 ni 1 es la tasa de deserción óptima.