每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

C5.0决策树之ID3、C4.5、C5.0算法

为了区分红蓝模块,先将能分的先划分开来(中间的红线,分为了一遍全蓝),然后再来细分(绿线)。

决策树优势:为什么业务人喜欢,可以给你决策场景,因为模型可视化高,可以讲故事。

一、起源

最早的决策树算法起源于CLS(Concept Learning System)系统,即概念学习系统。它是最早的决策树算法,为今后的许多决策树算法提供了借鉴。[[[] 李旭. 五种决策树算法的比较研究[D].大连理工大学,2011.]]
决策树模型,通过对训练样本的学习,建立分类规则;依据分类规则,实现对新样本的分类;属于有指导(监督)式的学习方法,有两类变量:目标变量(输出变量),属性变量(输入变量)。

决策树模型与一般统计分类模型的主要区别:决策树的分类是基于逻辑的,一般统计分类模型是基于非逻辑的。

1、常见决策树
常见的算法有CHAID、CART、Quest和C5.0。对于每一个决策要求分成的组之间的“差异”最大。各种决策树算法之间的主要区别就是对这个“差异”衡量方式的区别。
决策树很擅长处理非数值型数据,这与神经网络智能处理数值型数据比较而言,就免去了很多数据预处理工作。[[[] 小白学数据,http://www.cnblogs.com/yuyang-DataAnalysis/archive/2011/10/12/2205742.html]]
概念
CHAID
卡方自动交互检验 (Chi-squared Automatic Interaction) 1、计算节点中类别的p值。根据p值的大小决定决策树是否生长不需要修剪(与前两者的区别)
2、CHAID只能处理类别型的输入变量,因此连续型的输入变量首先要进行离散处理,而目标变量可以定距或定类
3、可产生多分枝的决策树
4、从统计显著性角度确定分支变量和分割值,进而优化树的分枝过程
5、建立在因果关系探讨中,依据目标变量实现对输入变量众多水平划分
CART 1、节点采用二分法(与C4.5最大的区别,c4.5可以有很多分支);用Gini Ratio作为衡量指标,如果分散指标程度很高的说明数据有很多类别。
2、推理过程完全依据属性变量的取值特点(与 C5.0不同,C&RT的输出字段既可以是数值型,也可以是分类型)
3、目标是定类变量为分类树,若目标变量是定距变量,则为回归树
Quest 1、运算过程比CR&T更简单有效
2、预测变量可以是数字范围的,但目标变量必须是分类的。
3、QUEST 节点可提供用于构建决策树的二元分类法,此方法的设计目的是减少大型 C&R决策树分析所需的处理时间
C5.0 执行效率和内存使用改进、适用大数据集
Fuzzy ID3 模糊算法是对算法的扩展。模糊算法首先对连续属性进行模糊化过程,然后利用模糊集合的势计算模糊信自、增益,从而选择分裂属性。模糊克服了不能处理连续属性的弱点。但是,模糊与相同,都不能处理缺失属性值。
FS-DT算法 FS-DT算法是SLIQ算法的模糊化算法,它不是先对连续属性进行模糊化,它对数据的模糊化过程是在建树过程中完成的,由Gini index确定分裂属性及分裂点后,对数
据的模糊化才开始
Yuan’s FDT算法 用分类不确定度作为选择属性的方法,在建树过程中,某个属性使得分类不确定性达到最小,则选择其来作为分裂属性
Spint算法 对SLIQ算法的改进,对于大数据集,采取类表、属性表和类直方图三种数据结构,算法其进行了修改,删除其它两类结构,只留下属性列表,属性列表的每行包含属性值、属性对应的类和样本的一记录号三类信息。[[[] 李旭. 五种决策树算法的比较研究[D].大连理工大学,2011.]]

2、聚类分析、判别分析、分类树的区别
是否需要数据类别 是否可以将数据分类 可以输出分类规则
聚类分析 不需要 可以 不能
判别分析 需要 可以 不能
分类树 需要 可以 能
二、原理——如何制定节点[[[] 古韦专栏,http://m.blog.csdn.net/blog/hwwn2009/38511715]]

其中四个条件属性,一个决策属性(playTennis)。
1、信息熵(Entropy)
信息量的数学期望,是心愿发出信息前的平均不确定性,也称先验熵。
决策属性的Entropy(熵):
=0.940286
2、信息增益
例如outlook里面有三个属性sunny、OverCas、Rain,每个属性在决策属性中,sunny有2个yes,3个no。
=0.97095
=0
=0.97095
outlook信息增益:

=0.940286-5/14*0.97095-0-5/14*0.97095=0.24675
以下其他属性同理。
Outlook=0.24675

我们看到Outlook的信息增益是最大的,所以作为决策树的一个根节点。即:

然后,从Outlook下面出来三个树枝,最左边的Sunny,我们从Outlook是Sunny的实例数据中,找到信息增益最大的那一个,依次类推。
3、分离信息(Split Information)
数据集通过条件属性A的分离信息。
分离信息的计算方法,数学符号表达式为:

数据集通过Outlook这个条件属性的分离信息,Outlook有三个属性值分别为:Sunny,Overcast,Rain,它们各占5,4,5,所以:

4、信息增益率(Information gain ratio)
数学符号表达式:

数据集S针对Outlook的信息增益率,

分子和分母这两个值都已经求出来,选择信息增益率最大的那个属性,作为节点。

5、剪枝
剪枝一般分两种方法:先剪枝和后剪枝。
(1)先剪枝
先剪枝方法中通过提前停止树的构造(比如决定在某个节点不再分裂或划分训练元组的子集)而对树剪枝。
先剪枝有很多方法,比如(1)当决策树达到一定的高度就停止决策树的生长;(2)到达此节点的实例具有相同的特征向量,而不必一定属于同一类,也可以停止生长(3)到达此节点的实例个数小于某个阈值的时候也可以停止树的生长,不足之处是不能处理那些数据量比较小的特殊情况(4)计算每次扩展对系统性能的增益,如果小于某个阈值就可以让它停止生长。先剪枝有个缺点就是视野效果问题,也就是说在相同的标准下,也许当前扩展不能满足要求,但更进一步扩展又能满足要求。这样会过早停止决策树的生长。
(2)后剪枝
它由完全成长的树剪去子树而形成。通过删除节点的分枝并用树叶来替换它。树叶一般用子树中最频繁的类别来标记。
(3)悲观剪枝法
使用训练集生成决策树又用它来进行剪枝,不需要独立的剪枝集。
 悲观剪枝法的基本思路是:设训练集生成的决策树是T,用T来分类训练集中的N的元组,设K为到达某个叶子节点的元组个数,其中分类错误地个数为J。由于树T是由训练集生成的,是适合训练集的,因此J/K不能可信地估计错误率。所以用(J+0.5)/K来表示。设S为T的子树,其叶节点个数为L(s), 为到达此子树的叶节点的元组个数总和, 为此子树中被错误分类的元组个数之和。在分类新的元组时,则其错误分类个数为 ,其标准错误表示为:  。当用此树分类训练集时,设E为分类错误个数,当下面的式子成立时,则删掉子树S,用叶节点代替,且S的子树不必再计算。
         。

三、ID3、C4.5、C5.0对比
ID3算法 C4.5 C5.0
缺点 ID3是非递增算法,单变量决策树(在分枝节点上只考虑单个属性)
只考虑属性变量是离散型 1、在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效
2、大数据集乏力。C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行
优点 1、属性变量可以是连续型的
在树构造过程中进行剪枝 1、应用于大数据集上的分类算法,主要在执行效率和内存使用方面进行了改进
2、在面对数据遗漏和输入字段很多的问题时非常稳健
3、提供强大技术以提高分类的精度
4、比一些其他类型的模型易于理解,模型退出的规则有非常直观的解释[[[] 小白学数据,http://www.cnblogs.com/yuyang-DataAnalysis/archive/2011/10/12/2205742.html]]

节点选择 信息增益最大 信息增益率最大 采用Boosting方式提高模型准确率,又称为BoostingTrees,在软件上计算速度比较快,占用的内存资源较少

剪枝  C4.5采用悲观剪枝法,它使用训练集生成决策树又用它来进行剪枝,不需要独立的剪枝集。
四、五种决策算法的比较[[[] 李旭. 五种决策树算法的比较研究[D].大连理工大学,2011.]]

通过十七个公开数据集,对比FS-DT、Yuan’s、FDT、C4.5、Fuzzy ID3、CART五种决策树方法。

1、准确率比较

CD值,临界差值,在Nemenyi检验和Tukey检验方法两种检验方法用差异时可以用CD值来衡量。得分越低,表示相应的算法的准确率越高。

Fuzzy ID3比FS-DT表现优秀。

2、叶子节点比较

普遍看来,CART和FS-DT两种算法的叶子节点数目比较少。
比较三种模糊决策树,FS-DT、Yuan’s FDT、Fuzzy ID3,FS-DT算法节点比较少。

3、相似性比较

关于相似性,一种观点认为两种分类器的分类准确率相同,则它们具有较高的相似度;另一方面,即两种分类器讲相同的样本分到了同一类,则相似度较高。
大部分两次实验的相似度能达到以上,但有些实验的相似度只有,如应用于第二类五次实验的相似度。

下面分析具体是哪种原因导致上面的问题。对于C4.5应用于Iris数据集,第二类的相似度中存在只有50%的相似度问题,对比算法在第二类的相似度,全部高于90%,这说明分类器的选取没有问题。问题可能存在于Iris数据集中第二类的数据中,这一类数据集分布不集中,导致了分类难度的增加。

每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

决策树之ID3、C4.5、C5.0等五大算法的更多相关文章

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

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

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

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

  3. R_针对churn数据用id3、cart、C4.5和C5.0创建决策树模型进行判断哪种模型更合适

    data(churn)导入自带的训练集churnTrain和测试集churnTest 用id3.cart.C4.5和C5.0创建决策树模型,并用交叉矩阵评估模型,针对churn数据,哪种模型更合适 决 ...

  4. 决策树之ID3、C4.5

    决策树是一种类似于流程图的树结构,其中,每个内部节点(非树叶节点)表示一个属性上的测试,每个分枝代表该测试的一个输出,而每个树叶节点(或终端节点存放一个类标号).树的最顶层节点是根节点.下图是一个典型 ...

  5. 机器学习之决策树一-ID3原理与代码实现

    决策树之系列一ID3原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9429257.html 应用实 ...

  6. 机器学习之决策树(ID3 、C4.5算法)

    声明:本篇博文是学习<机器学习实战>一书的方式路程,系原创,若转载请标明来源. 1 决策树的基础概念 决策树分为分类树和回归树两种,分类树对离散变量做决策树 ,回归树对连续变量做决策树.决 ...

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

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

  8. 《机器学习实战》学习笔记第三章 —— 决策树之ID3、C4.5算法

    主要内容: 一.决策树模型 二.信息与熵 三.信息增益与ID3算法 四.信息增益比与C4.5算法 五.决策树的剪枝 一.决策树模型 1.所谓决策树,就是根据实例的特征对实例进行划分的树形结构.其中有两 ...

  9. 决策树(上)-ID3、C4.5、CART

    参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解决策树): 1.https://zhuanlan.zhihu.com/p/85731206 2.https://zhuanla ...

随机推荐

  1. bat自动打包压缩实现

    1.引言 本文档的编辑目的是为了实bat脚本自动打包功能,包含包的名字命名,压缩文件内外层文件夹的名字:包含svn版本号等: 2.实现介绍 (1)获取svn号,生成批处理文件 写一个pak.bat文件 ...

  2. 2018Pycharm激活方法

    1.将"0.0.0.0 account.jetbrains.com"添加到hosts文件中 2.打开http://idea.lanyus.com/ 3.获取激活码,粘贴到第二个选项 ...

  3. javascipt中的DOM对象

    1.HTML中DOM对象的概念 HTML Document Object Model(文档对象模型) HTML DOM定义了访问和操作HTML文档的标准方法 HTML DOM把HTML文档呈现为带有元 ...

  4. 数据库MySQL的基本操作

    1.MySQL数据库的安装: CentOS6上mysql服务端和客户端的安装和启动: #使用yum安装mysql数据库的服务端和客户端 yum install -y mysql mysql-serve ...

  5. iOS-UINavigationBar【颜色设置】

    UINavigationBar的一些颜色设置,以前老是忘,这次记住了 - (void)setNavigationBar{ ///NavigationBar backgroundcolor[背景色] [ ...

  6. BZOJ 3786: 星系探索 [伪ETT]

    传送门 数据,标程 题意: 一颗有根树,支持询问点到根路径权值和,子树加,换父亲 欧拉序列怎么求路径权值和? 一个点的权值只会给自己的子树中的点贡献,入栈权值正出栈权值负,求前缀和就行了! 和上题一样 ...

  7. 洛谷3月月赛 R1 Step! ZERO to ONE

    洛谷3月月赛 R1 Step! ZERO to ONE 普及组难度 290.25/310滚粗 t1 10分的日语翻译题....太难了不会... t2 真·普及组.略 注意长为1的情况 #include ...

  8. BZOJ 3620: 似乎在梦中见过的样子 [KMP 暴力]

    和我签订契约,成为魔法少女吧 题意:求所有形似于A+B+A 的子串的数量 , 且len(A)>=k,len(B)>=1 位置不同其他性质相同的子串算不同子串,位置相同但拆分不同的子串算同一 ...

  9. PHP基础点滴

    PHP基础点滴 双冒号::的用法: 双冒号操作符即作用域限定操作符Scope Resolution Operator可以访问静态.const和类中重写的属性与方法. 伪类型(pseudo-types) ...

  10. cnblogs的使用

    cnblogs的使用 选择使用cnblogs而不是csdn,答案是很明显的.csdn每次创建博客之后会有一段时间的审核期,这大大的影响了用户体验.此外,cnblogs的用户群以及使用模式有着很大的诱惑 ...