请问scikitlearn的决策树是如何剪枝的呢
来源:12-5 CART与决策树中的超参数

宝慕林4453330
2020-07-14
老师你好,我看到很多地方提到预剪枝和后剪枝。请问这个和您课程中讲的调节超参数有什么关系呢。scikit-learn是预剪枝还是后剪枝呢?谢谢
1回答
-
liuyubobobo
2020-07-14
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
因为是 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
加油!:)
012020-07-16
相似问题