问:
Sklearn的决策树中怎么设置剪枝操作?
答:
Sklearn中的决策树默认使用预剪枝操作来减小过拟合的风险,其中,预剪枝操作主要通过以下5个参数设置:
1 max_depth
max_depth 限制树的最大深度,超过设定深度的树枝全部剪掉,一般用作树的”精修“
这是用得最广泛的剪枝参数,在高维度低样本量时非常有效。决策树多生长一层,对样
本量的需求会增加一倍,所以限制树深度能够有效地限制过拟合, 在集成算法中也非常实用。常用的可以取值 10 左右。
2 min_samples_leaf
一个结点在分支后的每个子结点都必须包含至少 min_samples_leaf 个训练样本,否则分
支就不会发生,或者,分支会朝着满足每个子结点都包含 min_samples_leaf 个样本的方向去发生。一般搭配 max_depth 使用,在回归树中有神奇的效果,可以让模型变得更加平滑。这个参数的数量设置得太小会引起过拟合,设置得太大就会阻止模型学习数据。
一般来说,建议从=5 开始使用。
如果叶结点中含有的样本量变化很大,建议输入浮点数作为样本量的百分比来使用。同
时,这个参数可以保证每个叶子的最小尺寸,避免低方差,过拟合的叶子结点出现。
3 min_samples_split
一个结点必须要包含至少 min_samples_split 个训练样本,这个结点才允许被分支,否
则分支就不会发生。
4 max_features
max_features 限制分支时考虑的特征个数,超过限制个数的特征都会被舍弃。
和 max_depth 异曲同工, max_features 是用来限制高维度数据的过拟合的剪枝参数,
但其方法比较暴力,是直接限制可以使用的特征数量而强行使决策树停下的参数, 在不知道决策树中的各个特征的重要性的情况下,强行设定这个参数可能会导致模型学习不足。
如果希望通过降维的方式防止过拟合,建议使用 PCA, ICA 或者特征选择模块中的降维算法。
5 min_impurity_decrease
min_impurity_decrease 限制信息增益的大小,信息增益小于设定数值的分支不会发生。
这是在 0.19 版本中更新的功能,在 0.19 版本之前时使用 min_impurity_split。








暂无数据