大数据,机器学习,人工智能人工智能/模式识别/机器学习精华专题机器学习与数据挖掘

机器学习算法——决策树4(剪枝)

2019-08-23  本文已影响13人  皮皮大

剪枝

为什么要剪枝

决策树算法在生成的过程中,利用递归的方式产生决策树,直到不能继续下去,容易造成对现有的训练数据有很好的分类,但是对未知数据分类不准确,造成了过拟合的现象。

在决策树学习中,将已经生成树进行简化的过程称之为剪枝prunning。简单地说:

剪枝过程

决策树的剪枝过程,往往就是通过最小化决策树整体的损失函数或者代价函数来实现。损失函数定义为C_{\alpha}(T)=\sum _{t=1}^{|T|}N_tH_t(T)+\alpha|T|经验熵为H_t(T)=-\sum_k\frac{N_{tk}}{N_t}log\frac{N_{tk}}{N_t}在损失函数中,通常将右端的第一项记为:C(T)=\sum _{t=1}^{|T|}N_tH_t(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}log\frac{N_{tk}}{N_t}C_{\alpha}(T)=C(T)+\alpha|T|

剪枝的过程就,\alpha确定时,选择损失函数最小的模型,即损失函数最小的子树。

决策树生成和剪枝

剪枝算法

输入:生成算法产生的整个数T,参数\alpha

输出:修剪后的子树T_{\alpha}

步骤:
- 计算每个节点的经验熵
- 递归地从树的叶结向上回缩
- 满足回缩前后整体树的损失函数:C_{\alpha}{(T_A)}\leq C_{\alpha}{(T_B)},则进行剪枝,即原来的父节点变成新的叶结点
- 重复上述操作,直到不能继续为止,得到最小损失函数的子树T_{\alpha}

上一篇 下一篇

猜你喜欢

热点阅读