El refuerzo del árbol de gradiente propuesto por Friedman utiliza árboles de decisión con J
nodos terminales (= hojas) como aprendices básicos. Hay varias formas de hacer crecer un árbol con J
nodos exactos, por ejemplo, uno puede hacer crecer el árbol de una manera profunda o de primera, ...
¿Hay una manera establecida de cómo cultivar árboles con J
nodos exactamente terminales para impulsar el árbol de gradiente?
Examiné el procedimiento de crecimiento del árbol del gbm
paquete de R y parece que expande el árbol de manera profunda y utiliza una heurística basada en la mejora de errores para elegir si expandir el nodo secundario izquierdo o derecho, ¿es correcto?
gbm
tiene un parámetron.minobsinnode
que controla el número mínimo de objetos por nodo. Por supuesto, entonces el número de nodos es menor o igual que NumberOfPoints / n.minobsinnodeRespuestas:
La solución en R
gbm
no es la típica.Otros paquetes, como
scikit-learn
oLightGBM
usan los llamados (en scikit-learn)BestFirstTreeBuilder
, cuando el número de hojas está restringido. Admite una cola prioritaria de todas las hojas y en cada iteración divide la hoja que produce la mejor disminución de impurezas. Por lo tanto, no es primero en profundidad ni en ancho, sino un tercer algoritmo, basado en cálculos en las hojas.fuente