ID3、C4.5、CART、RandomForest的原理

决策树意义:

分类决策树模型是表示基于特征对实例进行分类的树形结构.决策树可以转换为一个if_then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布. 它着眼于从一组无次序、无规则的样本数据(概念)中推理出决策树表示形式的分类规则.假设这里的样本数据应该能够用“属性—结论”.决策树学习旨在构建一个与训练数据拟合很好,并且复杂度小的一个可以自动对数据进行分类的树形结构,是树形结构的知识表示,可以直接转换为分类规则.因为从可能的决策树中直接选取最优决策树是NP完全问题,现实中采用启发式方法学习次优的决策树.

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法.

树模型在制药和生物领域尤其受欢迎,可能因为它和医生做决策的过程比较类似. 随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性.

决策树学习算法:

包含3部分:特征选择、树的生成和树的剪枝.常用算法有ID3、C4.5和CART、RandomForest,其中C4.5是ID3的校正,RandomForest的思想可用于前面三种算法来提高正确度

CART(分类的生成算法)

输入:训练数据集D,停止计算的条件;

输出:CART决策树

根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二叉决策树;

(1)设结点的训练数据集为D,计算现有特征对该数据集的基尼指数.此时,对每一个特征A,对其可能取的每一值a,根据样本点对A=a的测试为“是”或“否”将D分割成D1和D2 两部分,计算A=a时的基尼指数

(2)在所有可能的特征A以及它们所有可能的切分点a中,选择基尼指数最小的特征及其对应的切分点作为最优特征与最优切分点.依最优特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去.

(3)对两个子结点递归地调用(1)、(2),直至满足停止条件

(4)生成CART决策树

算法停止计算的条件是结点中的样本个数小于预定阈值,或样本集的基尼指数小于预定阈值(样本基本属于同一类),或者没有更多特征.

决策树优缺点:

优点:

1、决策树易于理解和实现,人们在在学习过程中不需要使用者了解很多的背景知识,只从样本数据及提供的信息就能够产生一颗决策树,这同时是它的能够直接体现数据的特点,只要通过解释后都有能力去理解决策树所表达的意义;

2、对于决策树,数据的准备往往是简单或者是不必要的,而且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源做出可行且效果良好的结果;

3、易于通过静态测试来对模型进行评测,可以测定模型可信度;如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式;

缺点:

1、是基于规则的算法,在产生规则的时候采用了局部的贪婪方法,每次只选取一个属性进行分析构造决策树,因而产生大量的规则,数据集很大,规则就很复杂,效率明显会下降,而且既然是局部最优,无法保障全局最优;

2、C4.5在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效.只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行;

3、处理缺失数据时的困难;

4、过度拟合问题的出现,以及忽略数据集中属性之间的相关性等.

RF的优缺点:

优点:

1、
几乎不需要输入准备.它们可以处理二元特征,分类特征,数字特征,并且不需要任何缩放处理.

2、 在当前所有算法中,具有极好的准确率;

3、 能够有效地运行在大数据集上;

4、 能够处理具有高维特征的输入样本,而且不需要降维;

5、 能够评估各个特征在分类问题上的重要性;

6、 在生成过程中,能够获取到内部生成误差的一种无偏估计;

7、 对于缺省值问题也能够获得很好得结果;

8、
可实现隐式特征选择,并且提供一个很好的特征重要性指标;

9、
通用性.随机森林适用于各种各样的建模工作,它们可以很好的处理回归任务和分类任务(甚至产生体面的校正的概率分数),它就相当于机器学习领域的Leatherman(多面手),你几乎可以把任何东西扔进去,它基本上都是可供使用的.在估计推断映射方面特别好用,以致都不需要像SVM那样做很多参数的调试.

缺点:

1、  随机森林的主要劣势在于模型大小.你可能需要数百兆的内存才能轻松地结束一个森林,而且评估的速度也很慢.

2、  另外一点,有些人可能会发现一个问题,也就是随机森林模型其实是个很难去解释的黑盒子.

RF为什么要有放回地抽样:

如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是"有偏的",都是绝对"片面的",也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决,这种表决应该是"求同",因此使用完全不同的训练集来训练每棵树这样对最终分类结果是没有帮助的

1)如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的;

2)  每棵树都尽最大程度的生长,并且没有剪枝过程.

随机森林中的“随机”就是指的这里的两个随机性.两个随机性的引入对随机森林的分类性能至关重要.由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感).

随机森林分类效果(错误率)与两个因素有关:

1)森林中任意两棵树的相关性:相关性越大,错误率越大;

2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低.

减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大.所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数.

时间: 2024-10-26 09:29:28

ID3、C4.5、CART、RandomForest的原理的相关文章

决策树(ID3,C4.5,CART)原理以及实现

决策树 决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布. [图片上传失败...(image-2e6565-1543139272117)] 决策树的中间节点可以看做是对一种特征的判断,也是符合上一次判断特征某种取值的数据集,根节点代表所有数据集;叶子节点看做是判断所属的类别. 决策树学习通常包括3个步骤: 特征选择. 决策树生成和决策树剪枝. 目前常用的决策树算法有ID3, C4.5 和C

《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART)

============================================================================================ <机器学习实战>系列博客是博主阅读<机器学习实战>这本书的笔记,包含对其中算法的理解和算法的Python代码实现 另外博主这里有机器学习实战这本书的所有算法源代码和算法所用到的源文件,有需要的留言 如需转载请注明出处,谢谢 ======================================

C4.5,CART,randomforest的实践

#################################Weka-J48(C4.5)################################# ##############################R语言:C4.5###################################### ###############################C5.0############################# data(churn) treeModel <- C5

决策树算法实例讲解

转自:https://www.jianshu.com/p/f66696c98e07 结合例子解释算法原理和过程,觉得容易理解,转来做个记录 1.决策树 决策树模型demo 随机森林模型demo 1.1从LR到决策树 相信大家都做过用LR来进行分类,总结一下LR模型的优缺点: 优点 适合需要得到一个分类概率的场景. 实现效率较高. 很好处理线性特征. 缺点 当特征空间很大时,逻辑回归的性能不是很好. 不能很好地处理大量多类特征. 对于非线性特征,需要进行转换. 以上就是LR模型的优缺点,没错,决策

决策树介绍

 决策树(decision tree)     决策树:是一种基本的分类和回归方法.它是基于实例特征对实例进行分类的过程,我们可以认为决策树就是很多if-then的规则集合. 优点:1)训练生成的模型可读性强,我们可以很直观的看出生成模型的构成已经工作方式,因为模型就是由数据属性和类别构成一棵树.  2)由于是一棵树,所以它的预测分类速度快,想想一棵树能有多大的深度.如果是一颗二叉树即使有N个数据,深度也只有logN. 原则:根据损失函数最小化的原则建立决策树模型(其实大部分模型都是这个原则)

【读书笔记-数据挖掘概念与技术】分类:基本概念

数据分类的两个阶段:学习阶段(构造分类模型)和分类阶段(使用模型预测给定数据的类标号)和分类阶段(使用模型预测给定数据的类标号). 决策树归纳 构造一颗树,从根到叶子节点的路径,该叶子节点就存放着该元组的预测类. 决策树分类器的构造不需要任何领域知识和参数设置,因此适合于探测式知识发现.决策树可以处理高维数据. 分裂节点时,关于选择什么样的度量标准,主要分为三类: 1.ID3:信息增益: 2.C4.5:信息增益率: 3.基尼系数: 如何防止过拟合? 树剪枝:剪掉最不靠谱的分支: 方法:a)先剪枝

决策树和基于决策树的集成方法(DT,RF,GBDT,XGB)复习总结

摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布,学习思想包括ID3,C4.5,CART(摘自<统计学习方法>). 1.2 Bagging :基于数据随机重抽样的集成方法(Ensemble methods),也称为自举汇聚法(boostrap aggregating),整个数据集是

七月算法--12月机器学习在线班-第十一次课笔记—随机森林和提升

七月算法--12月机器学习在线班-第十一次课笔记-随机森林和提升 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com ? 随机森林:多棵树,对当前节点做划分是最重要的 1,决策树 决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树 叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类. ? 下面的重点是选择什么样的熵值下降最快 1.2, 决策树的生成算法: 建立决策树的关键,即在当前状态下选择哪个属

决策树与随机森林

文章部分图片来源于龙心尘老师课件. 首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值.而树形模型更加接近人的思维方式.树模型拟合出来的函数其实是分区间的阶梯函数. 其次,需要了解几个重要的基本概念:根节点(最重要的特征):父节点与子节点是一对,先有父节点,才会有子节点:叶节点(最终标签). 一.决策树 决策树生成的数学表达式: 决策树的生成必须要解决两个问题: (1)  如何分裂训练数据