使用一般的寻量方法得到的决策树会遇到一个问题,那就是决策树可能会变得过拟合(overfitted)——也就是说,它可能会变得过分针对训练数据。专门针对训练集所创建出来的分支,其熵值与真实情况相比,可能会有所降低,但因决策树上的判断条件其实是完全随意的,因此一棵过拟合的决策树所给出的答案也许会比实际情况更具特殊性,也即泛化能力较差。

一般的决策树算法直到无法再进一步降低熵的时候(if best_gain > 0)才会停止分支的创建,所以一种可行的解决方案就是,只有当熵减少的数量小于某个阈值时,我们就停止分支的创建。这种策略时常被人们采用,但是它有一个小小的缺陷,我们可能会遇到这样的数据集:某一次分支的创建并不会降低熵多少,但是随后创建的分支却会使熵大幅降低。对此,一种替代的策略是,先构造好整棵树,然后再尝试消除多余的节点,这个过程就是剪枝(prune)。

剪枝的过程就是对具有相同父节点的一组节点进行检查,判断如果将其合并,熵的增加量是否会小于某个指定的阈值。如果确实如此,则这些节点会被合并成一个单一的节点,合并后的新节点包含所有可能的结果值。

机器学习基础(五十一)—— 决策树的剪枝相关推荐

  1. 机器学习(五)—— 决策树回归模型和集合算法

    决策树回归模型和集合算法 1. 决策树概述 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率 --百度百科 决策树就是我们通常所 ...

  2. python与机器学习(五)——决策树

    决策树(Decision Tree) 通过sklearn库的决策树模型对iris数据进行多分类,并进行结果评估 导入: from sklearn.tree import DecisionTreeCla ...

  3. 机器学习之决策树算法ID3--参考麦子学院彭亮机器学习基础3.2决策树应用

    #决策树算法 #首先需要导入输入输出数据,并将输入输出数据转换为标准形式 #然后使用sklearn的决策树tree进行处理 #最后输出.dot文件结果,并用Graphviz输出决策树的图形 #对已有的 ...

  4. 机器学习基础(十一)—— Logistic Regression 梯度更新公式的推导

    Logistic Regression 所要最佳化的问题是: minw1N∑n=1Nln(1+exp(−ynwTxn))Ein( ...

  5. python决策树剪枝_机器学习基础:可视化方式理解决策树剪枝

    看了一些市面上的经典教材,感觉决策树剪枝这一部分讲的都特别晦涩,很不好理解.本文以理论白话+具体案例的形式来讲清楚这个重要知识点,打好决策树这个基础,有助于理解之后我们要讲解的随机森林.gbdt.xg ...

  6. 机器学习(五)常用分类模型(K最近邻、朴素贝叶斯、决策树)和分类评价指标

    机器学习(五)常用分类模型(K最近邻.朴素贝叶斯.决策树)和分类评价指标 文章目录 机器学习(五)常用分类模型(K最近邻.朴素贝叶斯.决策树)和分类评价指标 综述 常用分类模型 K最近邻模型 朴素贝叶 ...

  7. 【机器学习基础】用Python构建和可视化决策树

    作者|Nikhil Adithyan 编译|VK 来源|Towards Data Science 决策树 决策树是当今最强大的监督学习方法的组成部分.决策树基本上是一个二叉树的流程图,其中每个节点根据 ...

  8. 【机器学习基础】数学推导+纯Python实现机器学习算法5:决策树之CART算法

    目录 CART概述 回归树 分类树 剪枝 Python实现示例:分类树 在数学推导+纯Python实现机器学习算法4:决策树之ID3算法中笔者已经对决策树的基本原理进行了大概的论述.本节将在上一讲的基 ...

  9. 机器学习应用篇(五)——决策树分类实例

    机器学习应用篇(五)--决策树分类实例 文章目录 机器学习应用篇(五)--决策树分类实例 一.数据集 二.实现过程 1 数据特征分析 2 利用决策树模型在二分类上进行训练和预测 3 利用决策树模型在多 ...

  10. 机器学习基础篇(十一)——主成分分析法

    机器学习基础篇(十一)--主成分分析法 一.简介 当我们对含有多个变量的数据进行观测时,我们会收集大量的数据然后分析他们.大样本的数据集固然提供了丰富的信息,但是在一定程度上增加了问题的复杂性. 如果 ...

最新文章

  1. 配置nginx对php的支持
  2. php 插入 mysql_php插入mysql数据返回id的方法
  3. python中国-一个身居中国的法国程序员谈Python与PHP
  4. UVa1422 - Processor(二分法)
  5. Machine Learning-Introduction
  6. c++矩阵作为函数输入变量_现代控制理论线性系统入门(七)输入输出解耦的控制器设计...
  7. C语言fstat函数获取文件的大小
  8. Python turtle库实现基本剖析
  9. 如何解读决策树和随机森林的内部工作机制?
  10. 51 Nod 1161 Partial sums
  11. plsql破解的办法
  12. Win10 封装报错处理
  13. html视频外链地址,HTML第三方视频链接使用以及属性.docx
  14. Git reset --hard commit_id 和 git reset --soft commit_id
  15. 使用Navicat 设定 sql 触发器
  16. c语言二维数组a中,a,a[0],a[0][0]的值与值的类型
  17. 安装npm和cnpm
  18. 一个承载无数悲痛的网站
  19. 对标Zoom和Twilio,百家云还要走多久?
  20. python写的网站如何发布_如何发布python程序

热门文章

  1. spark application 同时运行 实行数据共享
  2. switch语句训练
  3. linux命令ps aux|grep xxx
  4. RGB数据保存为BMP图片
  5. C++设计模式之Singleton模式(单例模式)
  6. Tableau可视化学习笔记:day01-02
  7. property和attribute的区别
  8. Oracle常见五个服务的作用
  9. MYSQL Innodb逻辑存储结构
  10. python全栈 操作系统