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

作者: 皮皮大 | 来源:发表于2019-08-23 23:57 被阅读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|

  • C(T)表示模型训练数据的预测误差,模型和训练数据之间的拟合程度
  • |T|表示模型的复杂程度
  • \alpha控制两者之间的影响
    • \alpha大,模型简单
    • \alpha小,模型复杂
    • \alpha=0表示只考虑模型和训练数据之间的拟合程度,不考虑模型的复杂度

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

决策树生成和剪枝

  • 生成:
    • 通过提高信息增益和信息增益率对训练数据进行更好的拟合;
    • 学习局部的模型
  • 剪枝:
    • 通过优化损失函数来减小模型的复杂度;
    • 学习整体的过程
    • 利用损失函数最小原则进行剪枝就是用正则化的极大似然估计来进行模型选择

剪枝算法

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

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

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

相关文章

  • 决策树的剪枝、连续与缺失

    剪枝处理 剪枝是决策树学习算法对付“过拟合”的主要手段。剪枝的基本策略有预剪枝和后剪枝两种。预剪枝是指在决策树生成...

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

    剪枝 为什么要剪枝 决策树算法在生成的过程中,利用递归的方式产生决策树,直到不能继续下去,容易造成对现有的训练数据...

  • 决策树

    决策树 决策树模型与学习 特征选择 决策树的生成 决策树的剪枝 CART 算法 决策树模型呈树形结构,在分类问题中...

  • 第5章 决策树

    内容 一、决策树内容简介 二、决策树的模型与学习 三、特征选择 四、决策树生成 五、决策树剪枝 六、CART算法 ...

  • 李航-第5章决策树

    决策树的学习算法包特征选择、决策树的生成与决策树的剪枝过程。决策树学习应用信息增益准则选择特征。信息增益大的特征具...

  • 决策树与随机森林(三)--提升

    转自July--4月机器学习算法班 由决策树和随机森林引发思路 随机森林的决策树分布采样建立,相对独立。 思考: ...

  • Python学习——决策树中纯度算法的实现

    决策树 决策树算法是机器学习中的一个基础算法,该算法有着诸多的优点。在python中实现决策树,现阶段都已经集成中...

  • 决策树算法

    决策树 决策树也是经常使用的数据挖掘算法,其不用了解机器学习的知识,就能搞明白决策树是如何工作的。 决策树算法能够...

  • 决策树算法及python实现

    决策树算法是机器学习中的经典算法 1.决策树(decision tree) 决策树是一种树形结构,其中每个内部节点...

  • 决策树学习算法包括3部分

    决策树学习算法包括3部分: 特征选择 树的生成 树的剪枝 常用的算法有:ID3、C4.5、CART

网友评论

    本文标题:机器学习算法——决策树4(剪枝)

    本文链接:https://www.haomeiwen.com/subject/jnixectx.html