¿Es max_depth en scikit el equivalente a la poda en los árboles de decisión?

10

Estaba analizando el clasificador creado usando un árbol de decisión. Hay un parámetro de ajuste llamado max_depth en el árbol de decisión de scikit. ¿Es esto equivalente a podar un árbol de decisión? Si no, ¿cómo podría podar un árbol de decisión usando scikit?

dt_ap = tree.DecisionTreeClassifier(random_state=1, max_depth=13)
boosted_dt = AdaBoostClassifier(dt_ap, random_state=1)
boosted_dt.fit(X_train, Y_train)
Suhail Gupta
fuente
He logrado implementar la poda de la complejidad de costos en el modelo de Sklearn, y aquí está el enlace: github.com/appleyuchi/Decision_Tree_Prune , puede que le guste.
appleyuchi
Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia. - De la opinión
oW_

Respuestas:

9

¿Es esto equivalente a podar un árbol de decisión?

Aunque tienen objetivos similares (es decir, imponer algunas restricciones al modelo para que no se vuelva muy complejo y se sobreajuste), max_depth no es equivalente a la poda. La forma en que generalmente funciona la poda es volver al árbol y reemplazar las ramas que no ayudan con los nodos de las hojas.

Si no, ¿cómo podría podar un árbol de decisión usando scikit?

No puede a través de scikit-learn (sin alterar el código fuente).
Cita tomada de la documentación del Árbol de decisiones : Mecanismos como la poda (actualmente no se admite)

Si desea podar un árbol después, debe hacerlo por su cuenta:
puede leer esta excelente publicación que detalla cómo hacerlo.

Djib2011
fuente