1.决策树剪枝是什么?为什么要剪枝?
决策树的剪枝是将生成的树进行简化,以避免过拟合。
2.剪枝方法
2.1 预剪枝(Pre-Pruning)
在决策树完美分割学习样例之前,停止决策树的生长。这种提早停止树生长的方法,称为预剪枝方法。
在构造决策树的同时进行剪枝。所有决策树的构建方法,都是在无法进一步降低熵的情况下才会停止创建分支的过程,为了避免过拟合,可以设定一个阈值,熵减小的数量小于这个阈值,即使还可以继续降低熵,也停止继续创建分支。
预剪枝可能会过早停止,降低决策树的准确度。
预剪枝依据:
(1) 作为叶结点或作为根结点需要含的最少样本个数
(2) 决策树的层数
(3) 结点的经验熵小于某个阈值才停止
2.2 后剪枝(Post-Pruning)
后剪枝是在决策树生长完成之后,对树进行剪枝,得到简化版的决策树。后剪枝是目前最普遍的做法。
后剪枝的剪枝过程是删除一些子树,然后用其叶子节点代替,这个叶子节点所标识的类别通过大多数原则(majority class criterion)确定。所谓大多数原则,是指剪枝过程中, 将一些子树删除而用叶节点代替,这个叶节点所标识的类别用这棵子树中大多数训练样本所属的类别来标识,所标识的类称为majority class。
2.2.1 错误率降低剪枝(REP, Reduced Error Pruning)
对于完全决策树中的每一个非叶子节点的子树,我们尝试着把它替换成一个叶子节点,然后比较这替换前后两棵决策树在测试数据集中的表现,如果替换后的决策树在测试数据集中的错误比较少(小于等于),那么该子树就可以被替换成叶子节点。该算法以自底向上(bottom-up)的方式遍历所有的子树,直至没有任何子树可以替换使得测试数据集的表现得以改进时,算法就可以终止。
2.2.2 代价复杂度剪枝(CCP, Cost Complexity Pruning)
CCP 方法主要包含两个步骤:
(1)从原始决策树 T0 开始生成一个子树序列 T0 , T 1 , … , Tn .其中 ,T0为原始的整个决策树,Ti +1从 Ti 产生 , Tn 为根节点 。
在步骤 1 中 ,生成子树序列{T0 , T1 , …, Tn}的基本思想是从 T 0 开始, 裁剪 Ti 中关于训练数据集误差增加最小的分枝来得到 Ti+1 .
(2)从第 1 步产生的子树序列中 ,根据树的真实误差估计选择最佳决策树 。如何从第 1 步产生的子树序列 T0 , T1 , T2 , …中选择出 1 棵最佳决策树是 CCP 方法第 2 步的关键 .通常采用的方法有两种, 一种是 K折交叉验证(K-fold cross-validation),另一种是基于独立剪枝数据集 .
2.2.3 悲观剪枝(PEP,Pessimistic Error Pruning)
PEP 方法是 Quinlan(决策树发明者)为了克服 REP 方法需要独立剪枝数据集的缺点而提出的 ,它不需要分离的剪枝数据集 .为了提高对未来事例的预测可靠性 , PEP 方法对误差估计增加了连续性校正(continuitycorrection).
该方法是唯一一个自顶向下(Top-down)的剪枝算法。
参考文献
- https://www.cnblogs.com/luban/p/9412339.html
- 魏红宁.决策树剪枝方法的比较[J].西南交通大学学报.2005,40(1):44-48.
网友评论