Max_depth no scikit é equivalente a poda em árvores de decisão?

10

Eu estava analisando o classificador criado usando uma árvore de decisão. Há um parâmetro de ajuste chamado max_depth na árvore de decisão do scikit . Isso é equivalente a podar uma árvore de decisão? Caso contrário, como podar uma árvore de decisão usando o 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
fonte
Consegui implementar a remoção da complexidade de custos no modelo do Sklearn, e aqui está o link: github.com/appleyuchi/Decision_Tree_Prune, você pode gostar.
Appletuchi
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada. - Da avaliação
oW_

Respostas:

9

Isso é equivalente a podar uma árvore de decisão?

Embora eles tenham objetivos semelhantes (ou seja, impondo algumas restrições ao modelo para que ele não fique muito complexo e super ajuste), isso max_depth não é equivalente à poda. A maneira como a poda geralmente funciona é que ela volta pela árvore e substitui os galhos que não ajudam nos nós das folhas.

Caso contrário, como podar uma árvore de decisão usando o scikit?

Você não pode através do scikit-learn (sem alterar o código fonte).
Citação retirada da documentação da Árvore de Decisão : Mecanismos como remoção (atualmente não suportada)

Se você quiser pós-podar uma árvore, precisará fazê-lo por conta própria:
Você pode ler esta excelente postagem detalhando como fazê-lo.

Djib2011
fonte