决策树之 C4.5
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:
- 可以处理连续型和离散型的数据。
- 可以处理包括缺失值的数据。
- 对生成的决策树进行了减枝。
- 使用信息增益率作为属性选择的标准。
信息增益率
信息增益率定义为:
当中。分母 SplitE(A) 叫做分裂信息,公式定义为:
信息增益 Gain(A) 的求解和 ID3 一样:
信息熵:
另外,属性 A 划分 S 的信息熵 EntropyA(S) 的求解添加了对连续型数据的处理。
假设属性 A 是离散型的数据。则:
假设属性 A 是连续型的数据,则:
(将属性A的值按递增的顺序排序,对相邻的两个值取中间值(平均值),SL和SR就是这个中间值左右两部分子集。文字解释比較拗口难懂,详细的使用见后面的样例。)
缺失值和减枝
缺失值处理:
缺失值处理的方法有两种:
一种,是抛弃含有缺失值的数据,这样的适合于仅仅含少量缺失值的情况。
还有一种,是填充。C4.5 算法不是直接填充缺失值,而是用概率知识把信息增益率的求解作些变化:
- Gain(A)= 属性 A 在数据集中不空的比率×(Entropy(S)−EntropyA(S))。
- SplitE(A)=−∑i=1k|Si||S|log2|Si||S|−|Sunknow||S|log2|Sunknow||S|
(当中。Sunknow是含缺失值的数据组成的样本集。)
减枝处理:
- 减枝的目的是消除过度拟合,提高决策树的品质。
- 减枝的原则是去除预測精确度低的子树、减少决策树的复杂度、让决策树更加浅显易懂。
- 减枝的方法有两个:一种,在构建决策树之前给出限定条件,限定树的生长。还有一种,在决策树全然生长以后。对不良子树进行减枝。
- C4.5 採用后一种方法:从底往上。假设用某个使用频率非常高的子节点(或者叶子节点)替换该决策节点后。可以使得整棵树的预測误差率减少,则进行相应的减枝。
- 然而怎么求预測误差率呢?(以后再补上。
)
C4.5 步骤
- 对数据集进行预处理,对连续型属性求数据的最佳分裂点。
- 计算每一个属性的信息增益率,选取信息增益率最大的属性作为决策节点的划分属性。
- 对决策节点属性的每一个可能取值所相应的样本子集递归地执行步骤2。直到划分的每一个子集中的观測数据都属于同一个类标号,终于生成决策树。
- 对全然生长的决策树进行剪枝,得到优化后的决策树。
- 从剪枝后的决策树中提取分类规则。对新的数据集进行分类。
C4.5的优缺点
长处:产生的分类规则易于理解。准确率较高。
缺点:
- 在构造树的过程中,须要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
- 精度不够高。商业上用 C5.0 而非 C4.5。就是由于它的预測精度还不能非常好的满足用户的需求。
- C4.5 仅仅适合于可以驻留于内存的数据集,当训练集大得无法在内存容纳时,程序无法执行。
转载请注明出处。谢谢。(原文链接:http://blog.csdn.net/bone_ace/article/details/46322815)
决策树之 C4.5的更多相关文章
- 决策树之C4.5算法
决策树之C4.5算法 一.C4.5算法概述 C4.5算法是最常用的决策树算法,因为它继承了ID3算法的所有优点并对ID3算法进行了改进和补充. 改进有如下几个要点: 用信息增益率来选择属性,克服了ID ...
- 机器学习之决策树二-C4.5原理与代码实现
决策树之系列二—C4.5原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9435712.html I ...
- 深入了解机器学习决策树模型——C4.5算法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第22篇文章,我们继续决策树的话题. 上一篇文章当中介绍了一种最简单构造决策树的方法--ID3算法,也就是每次选择一个特 ...
- 决策树(ID3,C4.5,CART)原理以及实现
决策树 决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布. [图片上传失败...(image ...
- 分类算法:决策树(C4.5)(转)
C4.5是机器学习算法中的另一个分类决策树算法,它是基于ID3算法进行改进后的一种重要算法,相比于ID3算法,改进有如下几个要点: 1)用信息增益率来选择属性.ID3选择属性用的是子树的信息增益,这里 ...
- 决策树 ID3 C4.5 CART(未完)
1.决策树 :监督学习 决策树是一种依托决策而建立起来的一种树. 在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象,树中的每一个分叉路径代表某 ...
- 决策树之C4.5算法学习
决策树<Decision Tree>是一种预測模型,它由决策节点,分支和叶节点三个部分组成. 决策节点代表一个样本測试,通常代表待分类样本的某个属性,在该属性上的不同測试结果代表一个分支: ...
- 21.决策树(ID3/C4.5/CART)
总览 算法 功能 树结构 特征选择 连续值处理 缺失值处理 剪枝 ID3 分类 多叉树 信息增益 不支持 不支持 不支持 C4.5 分类 多叉树 信息增益比 支持 ...
- Python3实现机器学习经典算法(四)C4.5决策树
一.C4.5决策树概述 C4.5决策树是ID3决策树的改进算法,它解决了ID3决策树无法处理连续型数据的问题以及ID3决策树在使用信息增益划分数据集的时候倾向于选择属性分支更多的属性的问题.它的大部分 ...
随机推荐
- AlloyClip的简单使用
<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- order by 对null的处理
[Oracle 结论] order by colum asc 时,null默认被放在最后order by colum desc 时,null默认被放在最前nulls first 时,强制null放在最 ...
- 【bzoj1475】方格取数 网络流最小割
题目描述 在一个n*n的方格里,每个格子里都有一个正整数.从中取出若干数,使得任意两个取出的数所在格子没有公共边,且取出的数的总和尽量大. 输入 第一行一个数n:(n<=30) 接下来n行每行n ...
- [bzoj3944] sum [杜教筛模板]
题面: 传送门 就是让你求$ \varphi\left(i\right) $以及$ \mu\left(i\right) $的前缀和 思路: 就是杜教筛的模板 我们把套路公式拿出来: $ g\left( ...
- Python之面向对象:封装
1.封装的概念 将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装.外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏. 在使用面向对象的封装特性时 ...
- C语言中 单引号与双引号的区别
在C语言中,字符用单引号,字符串用双引号.在c1='a';中,'a'是字符常量,必须用单引号."a"表示字符串,包含两个字符,一个是'a',一个是'\0'. 用数组来存储字符串. ...
- How to use rowspan and colspan in tbody using datatable.js?
https://stackoverflow.com/questions/27290693/how-to-use-rowspan-and-colspan-in-tbody-using-datatable ...
- linux之stat
stat指令:文件/文件系统的详细信息显示: 使用格式:stat 文件名 stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: -f 不显示文件本身的信息,显示文件所在文件系统的信 ...
- JavaScript文本收缩展开 showdetail
原文发布时间为:2009-11-15 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...
- Codeforces Round #454 Div. 2 A B C (暂时)
A. Masha and bears 题意 人的体积为\(V\),车的大小为\(size\),人能钻进车的条件是\(V\leq size\),人对车满意的条件是\(2V\geq size\). 现知道 ...