前言:
最近老师讲解决策树的ID3算法和C4.5算法,但是他讲的不是很透彻,今天我想自己给他弄明白!
简介:
C4.5算法是由Ross Quinlan开发的用于产生决策树的分类算法,C4.5是ID3的升级版本,既然是升级的,必定会比ID3厉害很多,那么它在那些方面增强了呢?算法实现上又有什么区别呢?
改进:
- 通过信息增益率选择属性
- 处理连续型数据的属性
- 能够进行剪枝操作
- 能够对空缺值进行处理
离散型数据和连续型数据?
- 离散变量是指其数值只能用自然数或整数单位计算的则为离散变量
- 在一定区间内可以任意取值的变量叫连续变量,其数值是连续不断的
改进目的:
1.ID3算法是通过信息增益选择属性,当某特征种的特征值很多时,信息增益会很大,也就是ID3算法在选择属性的时候会偏向多个属性值的属性作为分裂属性的不足
2.ID3只能对离散型的数据进行处理,改进后的C4.5能够将连续型数据离散化
3.采用了一种后剪枝方法
- 避免树的高度无节制的增长,避免过度拟合数据
- 该方法使用训练样本集本身来估计剪枝前后的误差,从而决定是否真正剪枝
4.空缺值处理方法:
- 采用抛弃缺失值
- 补充缺失值
- 概率化缺失值:对缺失值的样本赋予该属性所有属性值的概率分布,即将缺失值按照其所在属性已知值的相对概率分布来创建决策树
如何计算信息增益率?
- 计算类别信息熵
- 计算每个属性的信息熵
- 计算信息增益
-
计算属性信息分裂度量
-
计算信息增益率
前三个步骤其实就是ID3算法的计算过程,如果不会的话请在我的有关ID3决策树中学习(下面是三个步骤的公式):
之后的两个步骤其实在前三个步骤基础上的一个进一步的计算
如果这块计算不懂得话你可以参考这个博客他又具体实例的计算步骤: https://blog.csdn.net/fuqiuai/article/details/79456971
C4.5优点与缺点:
优点:产生的分类规则易于理解,准确率较高。
缺点:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。