最常见核心的决策树算法—ID3、C4.5、CART(非常详细)
点击上方“Datawhale”,选择“星标”公众号
第一时间获取价值内容
ID3
- 初始化特征集合和数据集合;
- 计算数据集合信息熵和所有特征的条件熵,选择信息增益最大的特征作为当前决策节点;
- 更新数据集合和特征集合(删除上一步使用的特征,并按照特征值来划分不同分支的数据集合);
- 重复 2,3 两步,若子集值包含单一特征,则为分支叶子节点。
- ID3 没有剪枝策略,容易过拟合;
- 信息增益准则对可取值数目较多的特征有所偏好,类似“编号”的特征其信息增益接近于 1;
- 只能用于处理离散分布的特征;
- 没有考虑缺失值。
C4.5
- 引入悲观剪枝策略进行后剪枝;
- 引入信息增益率作为划分标准;
- 将连续特征离散化,假设 n 个样本的连续特征 A 有 m 个取值,C4.5 将其排序并取相邻两样本值的平均数共 m-1 个划分点,分别计算以该划分点作为二元分类点时的信息增益,并选择信息增益最大的点作为该连续特征的二元离散分类点;
- 对于缺失值的处理可以分为两个子问题:1. 在特征值缺失的情况下进行划分特征的选择?(即如何计算特征的信息增益率)2. 选定该划分特征,对于缺失该特征值的样本如何处理?(即到底把这个样本划分到哪个结点里)
- 针对问题一,C4.5 的做法是:对于具有缺失值特征,用没有缺失的样本子集所占比重来折算;
- 针对问题二,C4.5 的做法是:将样本同时划分到所有子节点,不过要调整样本的权重值,其实也就是以不同概率划分到不同节点中。
- 节点内数据样本低于某一阈值;
- 所有节点特征都已分裂;
- 节点划分前准确率比划分后准确率高。
- 剪枝策略可以再优化;
- C4.5 用的是多叉树,用二叉树效率更高;
- C4.5 只能用于分类;
- C4.5 使用的熵模型拥有大量耗时的对数运算,连续值还有排序运算;
- C4.5 在构造树的过程中,对数值属性值需要按照其大小进行排序,从中选择一个分割点,所以只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时,程序无法运行。
CART
- 分裂:分裂过程是一个二叉递归划分过程,其输入和预测特征既可以是连续型的也可以是离散型的,CART 没有停止准则,会一直生长下去;
- 剪枝:采用代价复杂度剪枝,从最大树开始,每次选择训练数据熵对整体性能贡献最小的那个分裂节点作为下一个剪枝对象,直到只剩下根节点。CART 会产生一系列嵌套的剪枝树,需要从中选出一颗最优的决策树;
- 树选择:用单独的测试集评估每棵剪枝树的预测性能(也可以用交叉验证)。
- C4.5 为多叉树,运算速度慢,CART 为二叉树,运算速度快;
- C4.5 只能分类,CART 既可以分类也可以回归;
- CART 使用 Gini 系数作为变量的不纯度量,减少了大量的对数运算;
- CART 采用代理测试来估计缺失值,而 C4.5 以不同概率划分到不同节点中;
- CART 采用“基于代价复杂度剪枝”方法进行剪枝,而 C4.5 采用悲观剪枝方法。
总结
- 划分标准的差异:ID3 使用信息增益偏向特征值多的特征,C4.5 使用信息增益率克服信息增益的缺点,偏向于特征值小的特征,CART 使用基尼指数克服 C4.5 需要求 log 的巨大计算量,偏向于特征值较多的特征。
- 使用场景的差异:ID3 和 C4.5 都只能用于分类问题,CART 可以用于分类和回归问题;ID3 和 C4.5 是多叉树,速度较慢,CART 是二叉树,计算速度很快;
- 样本数据的差异:ID3 只能处理离散数据且缺失值敏感,C4.5 和 CART 可以处理连续性数据且有多种方式处理缺失值;从样本量考虑的话,小样本建议 C4.5、大样本建议 CART。C4.5 处理过程中需对数据集进行多次扫描排序,处理成本耗时较高,而 CART 本身是一种大样本的统计方法,小样本处理下泛化误差较大 ;
- 样本特征的差异:ID3 和 C4.5 层级之间只使用一次特征,CART 可多次重复使用特征;
- 剪枝策略的差异:ID3 没有剪枝策略,C4.5 是通过悲观剪枝策略来修正树的准确性,而 CART 是通过代价复杂度剪枝。
- 《机器学习》周志华
- 《数据挖掘十大算法》吴信东
- CART 树怎么进行剪枝?
最常见核心的决策树算法—ID3、C4.5、CART(非常详细)相关推荐
- 语音识别学习日志 2019-7-16 语音识别基础知识准备5 {决策树算法(ID3、 C4.5、 CART)}
决策树算法(ID3. C4.5. CART) 决策树的定义 决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一颗熵值下降最快的树,到叶子节点处,熵值为0.其具有可读性.分类速度快的 ...
- 决策树算法(C4.5算法)
决策树算法(C4.5算法) 1.1 题目的主要研究内容 组的主要任务描述 熟悉和掌握决策树的分类原理.实质和过程,掌握决策树典型算法(ID3.C4.5.CART)的核心思想和实现过程. (2)自己工作 ...
- 决策树算法ID3算法(Python3实现)
目录 1.数据集准备 2.使用ID3算法递归构建决策树并使用决策树执行分类 2.1 ID3算法概述 2.2 递归终止条件 2.3 代码实现 3.Matplotlib实现决策树可视化 4.决策树的存储与 ...
- 三个有名的决策树算法:CHAID、CART和C4.5
三个有名的决策树算法:CHAID.CART和C4.5 CHAID.CART和C4.5大概是决策树算法丛林中最有名,商业上运用也也最成功的算法了.CHAID (chi-squared automatic ...
- 决策树数学原理(ID3,c4.5,cart算法)
上面这个图就是一棵典型的决策树.我们在做决策树的时候,会经历两个阶段:构造和剪枝. 构造 简单来说,构造的过程就是选择什么属性作为节点的过程,那么在构造过程中,会存在三种节点: 根节点:就是树的最顶端 ...
- 决策树算法——ID3算法,C4.5算法
目录(?)[-] 决策树算法 1摘要 2决策树引导 3决策树的构造 31ID3算法 32C45算法 4关于决策树的几点补充说明 41如果属性用完了怎么办 42关于剪枝 决策树算法 1.摘要 在前面两篇 ...
- 机器学习-决策树算法ID3实现,含例子(红酒分类)
决策树原理实现代码如下所示:(参考自机器学习实践 Peter Harrington). import mathx=[[0,1,"no"],[0,1,"no"], ...
- 机器学习:决策树算法(ID3算法)的理解与实现
机器学习:决策树算法(ID3算法)的理解与实现 文章目录 机器学习:决策树算法(ID3算法)的理解与实现 1.对决策树算法的理解 1.概述 2.算法难点 选择最优划分属性 1.信息熵 2.信息增益 2 ...
- 【机器学习常见算法】决策树算法(含示例代码)
决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规 则,并用树状图的结构来呈现这些规则,以解决分类和回归问题.决策树算法容易理解,适用各种 ...
最新文章
- React学习笔记6:React Hooks API总结
- JVM调优总结(4):分代垃圾回收
- 几个解决 Maven Jar 包冲突的小技巧,太实用了!
- linux添加、修改环境变量
- html dom对象简写,HTML DOM 对象
- 建立自己的voc数据集_Mac上 制作自己的VOC数据集
- 不到 10 行代码完成抖音热门视频的爬取!
- 《缠中说禅108课》96:无处不在的赌徒心理
- 工业交换机与普通交换机区别
- php 区时,php时区时间怎么转换?
- 奶酪和奶酪碎的区别_与奶酪三星银河芽战斗大逃杀直播vs airpods
- 用python实现的钉钉后台开发
- Debezium的基本使用(以MySQL为例)
- 霍夫变换c语言程序,霍夫变换 | Cauthy's Blog
- 宇视科技线上c语言笔试答案,宇视科技2016招聘试题.docx
- 智慧指间丨生态环境网格化监管系统——编织生态环保“绿网”
- JAVA 中IO总结 之前篇阻塞、非阻塞
- 使用SQLyog导出导入MySql中的数据
- 姚洋:建议国家购买三四线空置房 再低价出售给进城农民
- 单个象棋棋子图片!png