请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问scikitlearn的决策树是如何剪枝的呢

老师你好,我看到很多地方提到预剪枝和后剪枝。请问这个和您课程中讲的调节超参数有什么关系呢。scikit-learn是预剪枝还是后剪枝呢?谢谢

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-07-14 18:18:55

scikit-learn 默认创建一棵决策树,不使用剪枝策略。但是 scikit-learn 中的最新版本的决策树已经支持了剪枝,使用的是后剪枝。具体靠 ccp_alpha 来调节。ccp 就是 cost complexity pruning 的简称。


关于 ccp_alpha 这个参数的定义,可以参考 sklearn DecisionTree 官方文档最后一个参数:https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier

https://img1.sycdn.imooc.com//szimg/5f0d84bf0950d0f816480322.jpg


因为是 0.22 才加如的新特性,录这个课程还没有呢,这个课程对这个参数也没有介绍。简单来说,就是数值越大,剪枝越狠。默认为 0.0,表示不剪枝。


关于这个参数的实验,sklearn 的官方文档给出了一个非常好的例子,帮助大家理解这个参数,可以参考这里:https://scikit-learn.org/stable/auto_examples/tree/plot_cost_complexity_pruning.html#sphx-glr-auto-examples-tree-plot-cost-complexity-pruning-py


加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林4453330 #1
    老师,我看了一下文档中的案例,大概明白了ccp_alpha与模型的总不纯度成正比,与树的深度成反比,模型调优应该是找到合适的ccp_alpha,来平衡模型不纯度与模型的复杂度。但是不太明白ccp_alpha的物理意义是什么,老师能否解答一下?非常感谢
    回复 有任何疑惑可以回复我~ 2020-07-16 17:23:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信