决策树剪枝的必要性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
决策树剪枝的讨论
1.剪枝的必要性
现实世界的数据一般不可能是完美的,可能某些属性字段上缺值;可能缺少必要的数据而造成数据不完整;可能数据不准确、含有噪声甚至是错误的。基本的决策树构造算法没有考虑噪声,因此生成的决策树完全与训练例子拟合。在有噪声情况下,完全拟合将导致过分拟合,即对训练数据的完全拟合反而使对现实数据的分类预测性能下降。剪枝是一种克服噪声的基本技术,同时它也能使树得到简化而变得更容易理解。
2.剪枝的策略
有两种基本的剪枝策略:
1)预先剪枝:在生成树的同时决定是继续对不纯的训练子集进行划分还是停机。
2)后剪枝:是一种拟合-化简的两阶段方法。首先生成与训练数据完全拟合的一颗决策树,然后从树的叶子开始剪枝,逐步向根的方向剪。剪枝时要用到一个测试数据集合,如果存在某个叶子剪去后使得在测试集上的准确度或其他测度不降低(不变的更坏),则剪去该叶子;否则停机。
理论上,后剪枝要好于预先剪枝,但计算量大。
3.决策树剪枝的方法
1)CCP方法
CCP 方法主要包含两个步骤: (1) 从原始决策树T0开始生成一个子树序列T0,T1,、、,Tn。其中,T(i + 1)从Ti产生, Tn为根节点。(2)从第1步产生的子树序列中,根据树的真实误差估计选择最佳决策树。
在步骤1中,生成子树序列{T 0, T 1, , , T n}的基本思想是从T0开始,裁剪Ti中关于训练数据集误差增加最小的分枝来得到T(i+1)。实际上,当1棵树T在节点t处剪枝时,它的误差增加直观上认为是R(t)-R( T t ) , 其中,R(t)为在节点t的子树被裁剪后节点t的误差,R(Tt)为在节点t的子树没被裁剪时子树Tt的误差。然而, 剪枝后,T的叶子数减少了L(Tt)-1,其中,L(Tt)为子树Tt的叶子数,也就是说,T的复杂性减少了。因此,考虑树的复杂性因素,树分枝被裁剪后误差增加率由下式决定:
A=[R(t) - R(Tt)]/[|L(Tt)|-1]
T(i+1)就是选择Ti中具有最小A值所对应的剪枝树。
2)REP方法
REP 方法它需要一个分离数据集D用于剪枝。该方法的基本思路是,对于决策树T的每棵非叶子树S,用叶子替代这棵子树。如果S被叶子替代后形成的新树关于D的误差等于或小于S关于D所产生的误差,则用叶子替代子树S。
REP方法是当前最简单的事后剪枝方法之一,但在数据量较少的情况下很少应用。REP方法趋于过拟合,这是因为训练数据集中存在的特性在剪枝过程中都被忽略了,当剪枝数据集比训练数据集小得多时,这个问题特别值得注意。