决策树剪枝算法原理 损失函数 正则化
算法目的:决策树的剪枝是为了简化决策树模型,避免过拟合。
- 同样层数的决策树,叶结点的个数越多就越复杂;同样的叶结点个数的决策树,层数越多越复杂。
- 剪枝前相比于剪枝后,叶结点个数和层数只能更多或者其中一特征一样多,剪枝前必然更复杂。
- 层数越多,叶结点越多,分的越细致,对训练数据分的也越深,越容易过拟合,导致拟合测试数据时反而效果差。
算法基本思路:剪去决策树模型中的一些子树或者叶结点,并将其上层的根结点作为新的叶结点,从而减少了叶结点甚至减少了层数,降低了决策树复杂度。
剪枝类型:预剪枝、后剪枝
- 预剪枝是在决策树生成过程中,对树进行剪枝,提前结束树的分支生长。
- 后剪枝是在决策树生长完成之后,对树进行剪枝,得到简化版的决策树。
预剪枝依据:
- 作为叶结点或作为根结点需要含的最少样本个数
- 决策树的层数
- 结点的经验熵小于某个阈值才停止
后剪枝思路:
注:10 决策树和随机森林实践
参考:http://blog.****.net/ritchiewang/article/details/50254009