C4.5 是对 ID3 的一个优化,它依据信息增益率来进行属性选择。

关于决策树。请參见:http://blog.csdn.net/bone_ace/article/details/46299681

关于 ID3,请參见:http://blog.csdn.net/Bone_ACE/article/details/46312215

关于 C4.5

C4.5 主要针对 ID3 的缺陷作了一些优化改进,相当于是一个“升级版”的 ID3:

  1. 可以处理连续型和离散型的数据。
  2. 可以处理包括缺失值的数据。
  3. 对生成的决策树进行了减枝。

  4. 使用信息增益率作为属性选择的标准。

信息增益率

信息增益率定义为:

GainRatio(A)=Gain(A)SplitE(A)

当中。分母 SplitE(A) 叫做分裂信息,公式定义为:

SplitE(A)=−∑i=1k|Si||S|log2|Si||S|

信息增益 Gain(A) 的求解和 ID3 一样:

Gain(S,A)=Entropy(S)−EntropyA(S)


信息熵:

Entropy(S)=−∑i=1mpi⋅log2pi

另外,属性 A 划分 S 的信息熵 EntropyA(S) 的求解添加了对连续型数据的处理。

假设属性 A 是离散型的数据。则:

EntropyA(S)=∑i=1k|Si||S|Entropy(Si)

假设属性 A 是连续型的数据,则:

EntropyA(S)=|SL||S|Entropy(SL)+|SR||S|Entropy(SR)

(将属性A的值按递增的顺序排序,对相邻的两个值取中间值(平均值),SL和SR就是这个中间值左右两部分子集。文字解释比較拗口难懂,详细的使用见后面的样例。)

缺失值和减枝

缺失值处理:

缺失值处理的方法有两种:

一种,是抛弃含有缺失值的数据,这样的适合于仅仅含少量缺失值的情况。

还有一种,是填充。C4.5 算法不是直接填充缺失值,而是用概率知识把信息增益率的求解作些变化:

  1. Gain(A)= 属性 A 在数据集中不空的比率×(Entropy(S)−EntropyA(S))。
  2. SplitE(A)=−∑i=1k|Si||S|log2|Si||S|−|Sunknow||S|log2|Sunknow||S|

    (当中。Sunknow是含缺失值的数据组成的样本集。)

减枝处理:

  • 减枝的目的是消除过度拟合,提高决策树的品质。
  • 减枝的原则是去除预測精确度低的子树、减少决策树的复杂度、让决策树更加浅显易懂。
  • 减枝的方法有两个:一种,在构建决策树之前给出限定条件,限定树的生长。还有一种,在决策树全然生长以后。对不良子树进行减枝。
  • C4.5 採用后一种方法:从底往上。假设用某个使用频率非常高的子节点(或者叶子节点)替换该决策节点后。可以使得整棵树的预測误差率减少,则进行相应的减枝。
  • 然而怎么求预測误差率呢?(以后再补上。

C4.5 步骤

  1. 对数据集进行预处理,对连续型属性求数据的最佳分裂点。
  2. 计算每一个属性的信息增益率,选取信息增益率最大的属性作为决策节点的划分属性。

  3. 对决策节点属性的每一个可能取值所相应的样本子集递归地执行步骤2。直到划分的每一个子集中的观測数据都属于同一个类标号,终于生成决策树。
  4. 对全然生长的决策树进行剪枝,得到优化后的决策树。
  5. 从剪枝后的决策树中提取分类规则。对新的数据集进行分类。

C4.5的优缺点

长处:产生的分类规则易于理解。准确率较高。

缺点:

  • 在构造树的过程中,须要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。

  • 精度不够高。商业上用 C5.0 而非 C4.5。就是由于它的预測精度还不能非常好的满足用户的需求。
  • C4.5 仅仅适合于可以驻留于内存的数据集,当训练集大得无法在内存容纳时,程序无法执行。
转载请注明出处。谢谢。(原文链接:http://blog.csdn.net/bone_ace/article/details/46322815

决策树之 C4.5的更多相关文章

  1. 决策树之C4.5算法

    决策树之C4.5算法 一.C4.5算法概述 C4.5算法是最常用的决策树算法,因为它继承了ID3算法的所有优点并对ID3算法进行了改进和补充. 改进有如下几个要点: 用信息增益率来选择属性,克服了ID ...

  2. 机器学习之决策树二-C4.5原理与代码实现

    决策树之系列二—C4.5原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9435712.html I ...

  3. 深入了解机器学习决策树模型——C4.5算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第22篇文章,我们继续决策树的话题. 上一篇文章当中介绍了一种最简单构造决策树的方法--ID3算法,也就是每次选择一个特 ...

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

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

  5. 分类算法:决策树(C4.5)(转)

    C4.5是机器学习算法中的另一个分类决策树算法,它是基于ID3算法进行改进后的一种重要算法,相比于ID3算法,改进有如下几个要点: 1)用信息增益率来选择属性.ID3选择属性用的是子树的信息增益,这里 ...

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

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

  7. 决策树之C4.5算法学习

    决策树<Decision Tree>是一种预測模型,它由决策节点,分支和叶节点三个部分组成. 决策节点代表一个样本測试,通常代表待分类样本的某个属性,在该属性上的不同測试结果代表一个分支: ...

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

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

  9. Python3实现机器学习经典算法(四)C4.5决策树

    一.C4.5决策树概述 C4.5决策树是ID3决策树的改进算法,它解决了ID3决策树无法处理连续型数据的问题以及ID3决策树在使用信息增益划分数据集的时候倾向于选择属性分支更多的属性的问题.它的大部分 ...

随机推荐

  1. 【bzoj1475】方格取数 网络流最小割

    题目描述 在一个n*n的方格里,每个格子里都有一个正整数.从中取出若干数,使得任意两个取出的数所在格子没有公共边,且取出的数的总和尽量大. 输入 第一行一个数n:(n<=30) 接下来n行每行n ...

  2. 实现段落文字两端对齐的css样式

    有时候网站中的文字比较多,虽然为父元素设置了宽度,但是总是会出现两端参差不齐的情况,看起来不整齐.其实实现段落的两端对齐,只需要设置两个css 样式即可. .demo{ text-align: jus ...

  3. 简单数据结构题(from 钟子谦——IOI2018集训队自选题)

    简单数据结构题(from 钟子谦--IOI2018集训队自选题) 试题描述 给一棵 \(n\) 个点的树,点权开始为 \(0\) ,有 \(q\) 次操作,每次操作是选择一个点,把周围一圈点点权 \( ...

  4. BestCoder 2nd Anniversary/HDU 5718 高精度 模拟

    Oracle Accepts: 599 Submissions: 2576 Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/26 ...

  5. 将扁平化的JSON属性转换为嵌套的JSON

    需要将如下JSON {"a":"a","b":"b","c.e":"e",&qu ...

  6. CodeForces Round #402 (Div.2) A-E

    2017.2.26 CF D2 402 这次状态还算能忍吧……一路不紧不慢切了前ABC(不紧不慢已经是在作死了),卡在D,然后跑去看E和F——卧槽怎么还有F,早知道前面做快点了…… F看了看,不会,弃 ...

  7. Codevs 1315 摆花

    1315 摆花 2012年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小明的花店新开张,为了吸引顾客,他 ...

  8. Firebug Console API

    原文发布时间为:2011-06-06 -- 来源于本人的百度文章 [由搬家工具导入] Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下 ...

  9. c#.net用JavaScript实现 时钟显示

    原文发布时间为:2008-10-10 -- 来源于本人的百度文章 [由搬家工具导入] 显示日期,星期,以及时间: JS文件夹与default.aspx在同一个文件夹下 JS文件夹中有date.js文件 ...

  10. 长沙理工校赛I题题解-连续区间的最大公约数

    题目来源https://www.nowcoder.com/acm/contest/96/I 解题前们需要先知道几个结论: 首先,gcd是有区单调性的: gcd(L,R)>=gcd(L,R+d)  ...