决策树意义:

分类决策树模型是表示基于特征对实例进行分类的树形结构.决策树可以转换为一个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(或者是范围),这也是随机森林唯一的一个参数.

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

  1. ID3\C4.5\CART

    目录 树模型原理 ID3 C4.5 CART 分类树 回归树 树创建 ID3.C4.5 多叉树 CART分类树(二叉) CART回归树 ID3 C4.5 CART 特征选择 信息增益 信息增益比 基尼 ...

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

    决策树 决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布. [图片上传失败...(image ...

  3. 机器学习相关知识整理系列之一:决策树算法原理及剪枝(ID3,C4.5,CART)

    决策树是一种基本的分类与回归方法.分类决策树是一种描述对实例进行分类的树形结构,决策树由结点和有向边组成.结点由两种类型,内部结点表示一个特征或属性,叶结点表示一个类. 1. 基础知识 熵 在信息学和 ...

  4. 决策树 ID3 C4.5 CART(未完)

    1.决策树 :监督学习 决策树是一种依托决策而建立起来的一种树. 在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象,树中的每一个分叉路径代表某 ...

  5. 21.决策树(ID3/C4.5/CART)

    总览 算法   功能  树结构  特征选择  连续值处理 缺失值处理  剪枝  ID3  分类  多叉树  信息增益   不支持 不支持  不支持 C4.5  分类  多叉树  信息增益比   支持 ...

  6. C4.5,CART,randomforest的实践

    #################################Weka-J48(C4.5)################################# ################### ...

  7. 决策树模型 ID3/C4.5/CART算法比较

    决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boosting等tree ensembel 模型更为常见,但是“完 ...

  8. 机器学习算法总结(二)——决策树(ID3, C4.5, CART)

    决策树是既可以作为分类算法,又可以作为回归算法,而且在经常被用作为集成算法中的基学习器.决策树是一种很古老的算法,也是很好理解的一种算法,构建决策树的过程本质上是一个递归的过程,采用if-then的规 ...

  9. ID3/C4.5/Gini Index

    ID3/C4.5/Gini Index */--> ID3/C4.5/Gini Index 1 ID3 Select the attribute with the highest informa ...

随机推荐

  1. 170106、用9种办法解决 JS 闭包经典面试题之 for 循环取 i

    闭包 1.正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是 ...

  2. 安装VS2012以后打开office 2007 的任何程序都跳出VS2012配置界面的解决方案

    前两天闲来无事,下载了vs2012,打算学点mvc4的东西,装好以后,问题来了,打开word文档,直接弹出个windows正在配置vs2012的界面,等就等一下吧,结束以后还能正常看,结果谁知道,每次 ...

  3. Bug跟踪方法

     Bug跟踪函数调用方法 StackTraceElement mSte = new Exception().getStackTrace()[1]; Log.e("mmm", mSt ...

  4. linux git的安装与使用

    一. Git安装. sudo apt-get install git 二.Git提交到远程仓. 1.到github或其coding(提供免费的私有仓)创建项目. 2.项目目录下初始化git. sudo ...

  5. 杀死mapreduce

    在做mapreduce的时候,ctrl+c 其实就是在doc命令下杀死了mapreduce显示,后台还是有在运行mapreduce的程序 可以http://namenode.hadoop:8088/ ...

  6. EF常用命令行

    启用迁移:指定迁移的目录和数据库上下文名称Enable-Migrations -MigrationsDirectory "MigrationsHis" -ContextTypeNa ...

  7. [poj2247] Humble Numbers (DP水题)

    DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The se ...

  8. tsne官方论文代码解读和使用

    MLGB,人生就是矫情,充满冲动,充满热恋. tsne的08年的论文看了几遍,发现原理还是蛮简单的,能想到还是不容易(人生的战场是星辰大海,但我们的贡献就是也就是宇宙尘埃) 怎么说呢,现在真的是一个好 ...

  9. 随机生成验证码import random

    #!/usr/bin/env python import random temp = "" for i in range(6) : num = random.randrange(0 ...

  10. 年终汇报、总结、述职:教你做一场B格满满的技术大会演讲

    什么样的演讲和呈现最受听众欢迎,内容干货?逻辑清晰?长相帅气? 偶尔被邀作为speaker参加一些圈内的技术大会进行演讲.这里我分享下自己的经验,如何做一场B格满满的技术大会演讲,希望给做汇报.总结. ...