我在分析使用决策树创建的分类器。在scikit的决策树中有一个名为最大值_深度的调优参数。这相当于修剪决策树吗?如果没有,我如何使用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)发布于 2018-09-23 11:03:03
这相当于修剪决策树吗?
尽管它们有类似的目标(即对模型施加一些限制,使其不会变得非常复杂和过分合适),但max_depth并不等同于剪枝。剪枝通常的工作方式是返回到树中,替换那些对叶子节点没有帮助的树枝。
如果没有,我如何使用scikit修剪决策树?
你不能通过scikit-学习(不改变源代码)。
引用自决策树文档:机制,如剪枝(目前不支持)
如果你想修剪一棵树,你必须自己做:
您可以阅读此优秀职位详细说明如何做到这一点。
发布于 2020-02-01 20:46:00
现在使用新版本0.22.1,您可以!它基于最小成本复杂度剪枝:将选择成本复杂度最大、比ccp_alpha小的子树。
https://scikit-learn.org/stable/auto_例子/树/情节_成本_复杂性_pruning.html
https://datascience.stackexchange.com/questions/38666
复制相似问题