决策树在构建时一般会出现过拟合的情况,所以我们要在决策树构建完成后进行“剪枝操作”。所谓的剪枝就是对决策树的叶节点进行修剪,把多个叶节点进行合并,把小类合成一个大类然后以其中所占个数最多的类作为该大类的类。其实几乎决策树的构建都要进行剪枝操作,剪枝操作比树的构造还要重要
剪枝分为两种
- 前剪枝(在构造决策树时设定条件对树的构建进行终止从而达到剪枝的效果)
- 后剪枝(在树构建完成后对树进行修剪)
本文主要讲解后剪枝操作
后剪枝常有的方法
Reduced-Error Pruning(REP,错误率降低剪枝)
该剪枝方法把每个树的节点作为剪枝对象(包括叶节点和非叶节点)然后进行以下操作(自底向上,利用验证集进行剪枝)
1. 将改节点的子树删除(改节点一下的所有节点都删除)
2. 将改节点改为叶节点,并且将原子树中的数据最常见分类赋予该节点
3. 判断按上述方法修剪过后决策树的对验证集的性能不比原来差,则真正安上述方法修剪该节 点。
判定第三条一般就用最简单粗暴的错分率即可(或者错分的个数)
f(T)=−∑e(t) (t 属于T)
其中e(t)表示在节点t下的样本的误判个数;T表示当前树的节点