Max_depth dans scikit est-il l'équivalent de l'élagage dans les arbres de décision?

10

J'analysais le classificateur créé à l'aide d'un arbre de décision. Il y a un paramètre de réglage appelé max_depth dans l'arbre de décision de scikit. Est-ce l'équivalent de l'élagage d'un arbre de décision? Sinon, comment pourrais-je tailler un arbre de décision à l'aide de 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
la source
J'ai réussi à implémenter l'élagage de complexité des coûts sur le modèle de Sklearn, et voici le lien: github.com/appleyuchi/Decision_Tree_Prune vous l' aimerez peut-être.
appleyuchi
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change. - De l'avis
oW_

Réponses:

9

Est-ce l'équivalent de l'élagage d'un arbre de décision?

Bien qu'ils aient des objectifs similaires (c'est-à-dire placer certaines restrictions sur le modèle afin qu'il ne devienne pas très complexe et trop adapté), ce max_depth n'est pas équivalent à l'élagage. La façon dont l'élagage fonctionne généralement est de remonter dans l'arbre et de remplacer les branches qui n'aident pas les nœuds foliaires.

Sinon, comment pourrais-je tailler un arbre de décision en utilisant scikit?

Vous ne pouvez pas utiliser scikit-learn (sans modifier le code source).
Citation tirée de la documentation de l'Arbre de décision : mécanismes tels que l'élagage (non pris en charge actuellement)

Si vous souhaitez post-élaguer un arbre, vous devez le faire vous-même:
vous pouvez lire cet excellent article détaillant comment le faire.

Djib2011
la source