机器学习之决策树笔记(2)-剪枝处理过程

机器学习之决策树笔记(2)-剪枝处理

    • 为什么要剪枝?
      • 过拟合和欠拟合是什么?
    • 决策树剪枝的基本策略
    • 预剪枝
      • 预剪枝过程
      • 预剪枝优缺点
    • 后剪枝
      • 后剪枝过程
      • 后剪枝优缺点

机器学习之决策树笔记(1)-决策树基本概念及划分选择标准
前一部分讲了决策树相关基本概念及最优属性划分准则,现在接着讲决策树的剪枝处理。

为什么要剪枝?

剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段.在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。
因此,可通过主动去掉一些分支来降低过拟合的风险.
这里提到一个概念过拟合

过拟合和欠拟合是什么?

过拟合(over-fitting):其实就是所建的学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。过拟合就是学到了很多没必要的特征。
欠拟合呢(under-fitting):相对过拟合欠拟合还是比较容易理解。就是模型训练样本被提取的特征比较少,导致训练出来的模型不能很好地匹配,表现得很差,甚至样本本身都无法高效的识别。

决策树剪枝的基本策略

“预剪枝”(prepruning)和“后剪枝”(postpruning) [Quinlan, 1993].
预剪枝
预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;
后剪枝:
先从训练集生成一棵完整的决策树;
然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

如何判断决策树泛化性能是否提升呢?
我们将西瓜数据集划分成两部分,编号为 {1,2,3, 6,7, 10, 14, 15, 16, 17} 的样例组成训练集,编号为 {4,5, 8,9, 11, 12, 13} 的样例组成验证集。
如图(2)所示:

机器学习之决策树笔记(2)-剪枝处理过程_第1张图片
图(2)

假定采用信息增熵准则来进行划分属性选择,生成如图(3)所示的决策树,并对图中结点做了编号,以此来讨论预剪枝和后剪枝。

机器学习之决策树笔记(2)-剪枝处理过程_第2张图片
图(3)

预剪枝

机器学习之决策树笔记(2)-剪枝处理过程_第3张图片
图(4) 基于表(2)生成的预剪枝决策树

预剪枝过程

我们先讨论预剪枝.基于信息增益准则,我们会选取属性“脐部”来对训练集进行划分,并产生3个分支,如图(4)所示.然而,是否应该进行这个划分呢?预剪枝要对划分前后的泛化性能进行估计。

对①结点进行评估过程示例:
划分前:

所有样例集中在根结点.若不进行划分,则根据算法第6行,该结点将被标记为叶结点,其类别标记为训练样例数最多的类别。

划分结果:{4,5,8,9,11,12,13}均为好瓜

其中划分正确:{4,5,8}

精度:3/7 x 100%=42.9%

划分后:
在用属性“脐部”划分之后,图4.6中的结点②、③、④分别包含编号为{1,2,3,14}、 {6,7,15,17}、 {10,16} 的训练样例,因此这3个结点分别被标记为叶结点“好瓜”、“好瓜”、“坏瓜”(注:好瓜比例≥坏瓜比例,就判定此叶结点为好瓜,否者为坏瓜 )。
此时确定了划分标准。
划分结果:好瓜:{4,5,8,9,13} 坏瓜:{11,12}

其中划分正确:{4,5,8,11,12}

精度:5/7 x 100%=71.4%

由于划分后精度>划分前精度,用“脐部”进行划分得以确定.

然后,决策树算法应该对结点②进行划分,基于信息增益准则将挑选出划分属性“色泽”,然而,在使用“色泽”划分后使得验证集精度下降为57.1%.于是,预剪枝策略将禁止结点②被划分。

对结点③,最优划分属性为“根蒂”,划分后验证集精度仍为71.4%.这个划分不能提升验证集精度,于是,根据奥卡姆剃刀准则,预剪枝策略禁止结点③被划分.

PS: 奥卡姆剃刀基本含义:如无必要,勿增实体。通俗点说就是:一包辣条就能将解决的事情,绝不多给一个棒棒糖。 奥卡姆剃刀更详细信息见点击链接查看:奥卡姆剃刀原理

结点④,其所含训练样例已属于同一类,不再进行划分。

预剪枝优缺点

优点:预剪枝使得决策树的很多分支都没有“展开”,
1) 降低了过拟合的风险;
2) 显著减少了决策树的训练时间开销和测试时间开销。

缺点:
1) 有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;
2) 预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。

后剪枝

机器学习之决策树笔记(2)-剪枝处理过程_第4张图片
图(5) 基于表(2)生成的后剪枝决策树

后剪枝过程

后剪枝先从训练集生成一棵完整决策树,例如基于表(2)的数据我们得到如图(3)所示的决策树。

对结点⑥是否剪枝判定过程示例
使用预剪枝中对结点一精度的计算方法易知,该决策树的验证集精度为42.9%。

剪枝前:
划分结果:好瓜:{4,9,13} 坏瓜:{5,8,11,12}

其中划分正确:{4, 11,12}

精度:3/7 x 100%=42.9%

剪枝后:
后剪枝首先考察图(3)中的结点⑥.若将其领衔的分支剪除,则相当于把⑥替换为叶结点替换后的叶结点包含编号为{7, 15}的训练样本。
于是,该叶结点的类别标记为“好瓜”(因为好瓜率大于等于50%),此时:

划分结果:好瓜:{4,8,9,13} 坏瓜:{5,11,12}

其中划分正确:{4, 8,11,12}

精度:4/7 x 100%=57.1%

57.1%>42.9%.于是,后剪枝策略决定剪枝,如图(5)所示。

后剪枝优缺点

对比图(5和图(4)可看出,后剪枝决策树通常比预剪枝决策树保留了更多的分支。

优点: 一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树
缺点: 后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐-考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多


参考文献:
《机器学习》 周志华 著。(强烈推荐这本书,开卷必有所得。

本博文内容参考自周志华老师的《机器学习》,虽有部分自己的思考和对书中内容的扩展或注解、但大部分表述及截图均来自此书。博主理解能力有限,可能无法将书中真正的精髓展示给读者。想获取更多机器学习决策树的知识,大家可以购一本周老师的《机器学习》,开卷必有所得

你可能感兴趣的:(机器学习,机器学习,决策树,剪枝处理)