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).
- En la clasificación automática de documentos, ¿cómo trato con categorías en conflicto?
- ¿Cuáles son las principales diferencias entre econometría y aprendizaje automático?
- ¿Qué es una red neuronal deconvolucional?
- ¿Qué modelo / algoritmo de ML utilizo?
- ¿Cuál es el mejor tutorial de Python para el aprendizaje automático?
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é. .