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)

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.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.