En Una introducción al aprendizaje estadístico con aplicaciones en R , los autores escriben que ajustar un árbol de decisión es muy rápido, pero esto no tiene sentido para mí. El algoritmo tiene que pasar por cada característica y particionarlo de todas las formas posibles para encontrar la división óptima. Para entidades numéricas con observaciones, esto podría resultar en particiones para cada entidad.n
¿Estoy malinterpretando cómo funciona la división binaria? ¿O hay una razón por la cual este algoritmo no tomaría mucho tiempo?
Respuestas:
Los algoritmos de árboles de decisión no calculan todos los árboles posibles cuando se ajustan a un árbol. Si lo hicieran, estarían resolviendo un NP-hardproblema. Los algoritmos de ajuste del árbol de decisiones suelen tomar decisiones ambiciosas en el proceso de ajuste: en cada etapa optimizan el subproblema para encontrar una división óptima con los datos en el nodo dado y seguir avanzando en el proceso de ajuste. Además, a medida que avanza más en el árbol de decisión, tiene un conjunto de datos más pequeño que ha llegado al nodo dado, por lo que optimizará la regla de división en un subconjunto de datos más pequeño. Todas estas opciones son exploraciones lineales de los datos en el nodo dado. Esto no es complicado de hacer, pero puede ser algo costoso computacionalmente si tiene una gran cantidad de observaciones o una gran cantidad de covariables para dividir. Sin embargo, gran parte del trabajo se puede dividir y enviar a diferentes máquinas para trabajar, por lo que hay formas de desarrollar su arquitectura computacional para escalar.
fuente
Existen algunas diferencias entre los algoritmos CART y C4.5 para construir árboles de decisión. Por ejemplo, CART usa la impureza de Gini para elegir características, mientras que C.4.5 usa la entropía de Shannon. No creo que las diferencias sean relevantes para la respuesta, por lo que no diferenciaré entre ellas.
Lo que hace que los árboles de decisión sean más rápidos de lo que piensas es:
and
podría resultar en un mejor árbol. Esto significa que debe ser muy cuidadoso / inteligente al hacer ingeniería de características. Por ejemplo, supongamos que está tratando de predecir la cantidad de personas que beben, es posible que desee contar con elementos de ingeniería comonew_feature = hour > 22 & hour < 4 & (friday_night | saturday_night)
. Los árboles de decisión pueden pasar por alto tales reglas o darles menos importancia de lo que deberían.X <= 1
X <= 1.5
X <= 2
X <= 1
X <= 1.5
xgboost
tan rápidos. El aumento de gradiente es secuencial y no puede ser paralelo, pero los árboles sí pueden.fuente
Solo para enriquecer las respuestas,
Los árboles jerárquicos de decisión paralelos al eje son rápidos (CART, C4.5) pero hay otras alternativas, como los árboles de decisión no jerárquicos o aquellos que realizan particiones oblicuas que no lo son, aunque pueden ser más precisos. Verifique las siguientes referencias si está interesado (No son una selección exhaustiva).
No jerárquico:
Grubinger, T., Zeileis, A. y Pfeiffer, K.-., 2014. Evtree: Aprendizaje evolutivo de árboles de clasificación y regresión óptimos a nivel mundial en RJStat. Software 61 (1), 1-29.
Divisiones oblicuas:
Murthy, SK, Kasif, S. y Salzberg, S., 1994. Un sistema para la inducción de árboles de decisión oblicuos. J. Artif. Intell. Res. 2 (1), 1-32. http://dx.doi.org/doi:10.1613/jair.63 . Cantú-Paz, E. y Kamath, C., 2003. Inducción de árboles de decisión oblicuos con algoritmos evolutivos. IEEE Trans. Evol. Comput 7 (1), 54-68. http://dx.doi.org/10.1109/TEVC.2002.806857 . Heath, D., Kasif, S. y Salzberg, S., 1993. Inducción de árboles de decisión oblicuos. J. Artif. Intell. Res. 2 (2), 1002-1007.
¡Buena suerte!
fuente