ID3算法优缺点:

① 不能对连续数据进行处理,只能通过连续数据离散化进行处理;

② 采用信息增益容易偏向取值较多的特征,准确率不如信息增益率;

缺失值不好处理。

没有采用剪枝,决策树的结构可能过于复杂,容易出现过拟合。

C4.5算法优缺点:

① 产生的规则容易理解,准确率高,实现简单;

② 对数据进行多次顺序扫描和排序,效率低;

③ 只适合小规模数据集,需要将数据放到内存中。

那如何进行剪枝呢?

剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段。

在决策树学习中,为了尽可能正确分类训练样本,节点划分过程将不断重复,有时会造成决策树分支过多,这时有可能因训练样本学得“太好”了,以至于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。因此,可通过主动去掉一些分支来降低过拟合的风险。

剪枝策略分为预剪枝(prepruning)和后剪枝(post-pruning)。

预剪枝:在决策树生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树泛化性能提升,则停止划分并将当前节点标记为叶节点。

后剪枝:先从训练集中生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换成叶节点能带来决策树泛化能力的提升,则将该子树替换成叶节点。

那如何判断决策树泛化能力的提升?

可使用留出法、交叉验证法等方法进行评估。

留出法(hold-out):将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。即D=S∪T, S∩T= ,在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

交叉验证法(cross validation):将数据集D划分为k个大小相似的互斥子集,即

然后每次用k-1个子集的并集做测试集,余下的那个子集作为测试集,这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。

下一章讲解处理连续与缺失值

机器学习算法——决策树4(剪枝处理)相关推荐

  1. [机器学习算法]决策树和CART树

    决策树综述 决策树的工作原理 决策树(decision tree)分类法是一种简单但广泛使用的分类技术.以是否贷款违约的二分类问题为例,当我们希望根据给定的训练集习得一个模型对新出现的贷款人进行分类时 ...

  2. 机器学习算法—决策树(ID3)算法

    机器学习--决策树(ID3)算法 1.决策树(ID3)算法 1.1 算法引入 我们首先以一个分类问题开始,假设我们有这样一份样本数据: 我们的目标是想通过色泽.根蒂.敲声.纹理.脐部.触感来判断这是不 ...

  3. 请和我一起学习机器学习算法(决策树)

    在概念上,顾名思义,就是用来实现决策的树,本质上是分类. 决策树简介 分类树和回归树 有些地方会吧决策树分为分类树和回归树.那么什么是分类树,什么是回归树呢? 分类树 分类树就是最后的结果是类别,通过 ...

  4. 机器学习算法-决策树理论

    用较少的东西,同样可以做好的事情.越是小的决策树,越优于大的决策树. 引文 数据分类是一个两阶段过程,包括学习阶段(构建分类模型)和分类阶段(使用模型预测给定数据的类标号).决策树分类算法是监督学习的 ...

  5. 人人都在用的机器学习算法-决策树

    决策树(DecisionTree) 这里说几个决策树有关的概念: 贪心算法:是指在对问题求解时,总是做出在当前看来是最好的选择.不考虑总体的最优解,以每一步的局部最优解来模拟全局最优解.决策树是典型的 ...

  6. 机器学习算法(决策树)-Lect03

    参考资料: 周志华.<机器学习> 李航.<统计学习方法> Google搜索 1. 信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度) 2.决策树的不同分类算法(ID3算法. ...

  7. 简单易学的机器学习算法——决策树之ID3算法

    一.决策树分类算法概述     决策树算法是从数据的属性(或者特征)出发,以属性作为基础,划分不同的类.例如对于如下数据集 (数据集) 其中,第一列和第二列为属性(特征),最后一列为类别标签,1表示是 ...

  8. 金融风控机器学习第三十一天---拜师课堂 机器学习算法--决策树 随机森林

    ID3 c4.5的核心是熵 ID3 c4.5 cart 过拟合解决一般 用 剪枝 或者 随机森林 随机森林代码: #!/usr/bin/python # -*- coding:utf-8 -*-imp ...

  9. python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现

    概述 上一篇讲述了<机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现>,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现. 决策树 决策树(Decision Tree)在机 ...

最新文章

  1. thinkphp F方法
  2. tutorial_coreos 01-01-install 2015-05-27
  3. PAT_B_1090_C++(25分)
  4. hive表移到mysql_如何将Hive数据表移动到MySql?
  5. 在EORow或者VORow中对数据进行重复性校验
  6. zabbix监控windows下的mysql
  7. 深度学习图像超分辨率最新综述:从模型到应用
  8. U盘文件系统类型 和 linux 挂载 和 卸载
  9. 写一篇Hook Driver.
  10. ModuleNotFoundError: No module named ‘MySQLdb‘
  11. 【情感识别】基于matlab GUI SVM语音情感识别(带面板)【含Matlab源码 876期】
  12. win10计算机管理员权限删除,win10需要管理员权限删除文件怎么办?获取管理员权限删除文件夹...
  13. 【Python】断言(assert)的用法,你真的懂吗?
  14. 恋爱测试题测男生软件,男友求生欲测试题大全
  15. 使用Picasso加载图片的内存优化实践
  16. 前端导出word图片
  17. 关于ASCII码和ANSI码,以下说法不正确的是()?
  18. 一个很棒的字帖生成器
  19. python 列表的操作
  20. 【Flask项目】Redis各种数据类型操作命令

热门文章

  1. 严谨型性格分析,严谨型人格的职业发展
  2. 【毕业设计】单片机家用燃气的可视化实时监控报警仪 - 物联网 嵌入式 stm32
  3. 产业经济学-习题汇总
  4. 软件工程之面向对象分析与设计
  5. 探索<赛博朋克>风格游戏美术
  6. C# winform 免费短信提醒方式
  7. Mac系统解决ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘方法
  8. 融资数据采集以及分析风险投资数据
  9. 小红书带你玩转“关键词”
  10. python b站 排行_Python爬虫抓取B站小视频排行榜,新手也可以跟着做哦!