本文主要参考李航老师的《统计学习方法》一书,如有不妥之处,欢迎指出。
决策树生成算法递归地产生决策树,直到不能继续下去为止,这样产生的树往往对训练数据的分类很准确,但对为止的测试数据的分类却没有那么准确,即出现过拟合现象。过拟合的原因在与学习时过多地考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树,解决这个问题的方法是考虑决策树的复杂度,对已生成的决策树进行简化。
对决策树学习中将已生成的树进行简化的过程称为剪枝(pruning).具体地,剪枝从已生成的树上裁掉一些子树或叶结点,并将其根节点或父节点作为新的叶节点从而简化分类树模型。
这里主要介绍一种简单的决策树学习的剪枝算法。
决策树的剪枝往往通过极小化决策树整体的损失函数(loss function)或代价函数(cost function)来实现,设树T的叶结点个数为|T|,t是树T的叶结点,该叶结点有Nt个样本,其中k类的样本点有Ntk个,k=1,2,...,K,Ht(T)为叶结点t上的经验上,α ≥0为参数,则决策树学习的损失函数可以定义为: