决策树意义:

分类决策树模型是表示基于特征对实例进行分类的树形结构.决策树可以转换为一个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. 对于前端JS、Html、CSS的大小、位置是否影响网站的相应时间

    1.页面中大量的注释代码.空行会影响页面的加载速度 尽量去除打断的注释代码,及空行:尽可能的使用压缩后的JS.CSS文件,太小的文件没必要压缩 2.有人说CSS样式放在页面的开头,JS文件放在页面的结 ...

  2. MVVM简介

    如果你对MVVM的概念还是不了解,可以参看下面链接:http://baike.baidu.com/view/3507915.htm 我们以WPF+MVVM的本地桌面程序为背景,这样一来我们可以不去操心 ...

  3. js函数的传参是按值传对递

    根据js高级程序设计第三版编写,对于函数的参数只能按值传递是这样解释的: ECMAScript 中所有函数的参数都是按值传递的.也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另 ...

  4. hdu 5901 Count primes

    题意: 计数区间$[1, n](1 \leq n \leq 10^{11})$素数个数. 分析: 这里只介绍一种动态规划的做法. 首先要说一下[分层思想]在动态规划中非常重要,下面的做法也正是基于这一 ...

  5. 工作队列(workqueue) create_workqueue/schedule_work/queue_work

    --- 项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机.郁闷的是,运行时总报错"Scheduling while atomic",网上搜了一下:" ...

  6. p12(PKCS12)和jks互相转换

    p12 -> jks keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype ...

  7. 自动拒绝恶意IP远程登录Linux服务器脚本

    当我们已经配置了iptables防火墙,我们允许22端口对外网所有人访问,当然这也是为了方便,我们在任何地方都连接上,没有做VPN,也没有做ssh密钥验证,但是我们的密码设置得非常复杂,大小写.特殊符 ...

  8. Install Ansible on Mac OSX

    from: https://devopsu.com/guides/ansible-mac-osx.html and : https://devopsu.com/guides/ansible-post- ...

  9. Java程序员们最常犯的10个错误

    将数组转化为一个列表时,程序员们经常这样做: List<String> list = Arrays.asList(arr); Arrays.asList()会返回一个ArrayList对象 ...

  10. android中的位置服务(LBS)

    自己的位置:LocationManager 基本用法:创建实例:LocationManager locationManager =  (LocationManager)getSystemService ...