一篇文章讲清楚:C4.5决策树和CART决策树

通过这篇文章,我们需要理解信息增益率的意义,知道C4.5树的构建方法;理解基尼指数的作用,知道cart构建的特征选择方法,知道分类决策树的特点。

一、C4.5决策树

1.ID3树的不足

偏向于选择种类多的特征作为分裂依据

原因:ID3 用信息增益 做特征选择:选择信息增益最大的特征做分裂。核心:特征的取值类别越多,越容易把数据集切得很碎,子集纯度很高,信息增益就会偏大

2.简单回顾信息增益

  • H(D):原数据集的熵(混乱程度)
  • H(D|A):按特征 A 分裂之后的条件熵

信息增益 = 分裂前混乱度 − 分裂后加权平均混乱度

信息增益越大,代表这个特征分裂之后,整体数据变得越 "干净"。

条件熵公式:

n:特征 A 有多少个不同取值。

3.举个栗子

|-----|-----|-----|
| 特征b | 特征a | 目标值 |
| 1 | α | A |
| 2 | α | A |
| 3 | β | B |
| 4 | α | A |
| 5 | β | B |
| 6 | α | B |

特征a有2个取值

特征b有6个取值

1 特征M作为分裂特征,会构造一棵深度为2的决策树,该树的预测准确率可能非常高

2 但整棵树过于依赖少数的特征(只根据少数特征进行学习),导致过拟合

二、信息增益率

信息增益率 = 信息增益 /特征熵

1.计算方法:

2.信息增益率的本质:

特征的信息增益 ➗ 特征的内在信息

相当于对信息增益进行修正,增加一个惩罚系数

特征取值个数较多时,惩罚系数较小;特征取值个数较少时,惩罚系数较大。

惩罚系数:数据集D以特征a作为随机变量的熵的倒数**。**

3.总结

ID3 基于信息增益,当某个特征取值种类很多时,分裂后会产生大量小的子集,子集容易达到高纯度,条件熵大幅下降,信息增益偏大;算法会优先挑选这类特征,造成偏向取值多的特征。C4.5 使用信息增益比,引入特征自身熵做分母,对高基数特征进行惩罚,缓解该问题。

4.举个例子

已知数据集:

|-----|-----|-----|
| 特征b | 特征a | 目标值 |
| 1 | α | A |
| 2 | α | A |
| 3 | β | B |
| 4 | α | A |
| 5 | β | B |
| 6 | α | B |

需求:求特征a、b的信息增益率

(1).特征a的信息增益率:

(2).特征b的信息增益率:

结论:特征a的信息增益率大于特征b的信息增益率,根据信息增益率,应该选择特征a作为分裂特征

5.关于信息增益率的总结

信息增益率的作用
•信息增益偏向于选择种类多的特征作为分裂依据
•缓解ID3树中存在的不足

信息增益率
•信息增益率 = 信息增益 /特征熵
•相当于对信息增益进行修正,增加一个惩罚系数
二、CART决策树(Classification and Regression Tree)
Cart模型是一种决策树模型,它即可以用于分类,也可以用于回归。

Cart回归树使用平方误差最小化策略,

Cart分类生成树采用的基尼指数最小化策略。

**基尼值GiniD):**从数据集D中随机抽取两个样本,其类别标记不一致的概率。故,GiniD值越小,数据集D****的纯度越高。

**基尼指数Gini_indexD):**选择使划分后基尼系数最小的属性作为最优化分属性。

注意:
1.信息增益(ID3)、信息增益率值越大(C4.5),则说明优先选择该特征。
2.基尼指数值越小(cart),则说明优先选择该特征。

物理含义:

基尼值代表:从数据集随机抽两个样本,它们类别不一样的概率

  • Gini 越大 → 数据集越混乱、纯度越低
  • Gini 越小 → 数据集越纯净

举个例子:

已知:是否拖欠贷款数据。

需求:计算各特征的基尼指数,选择最优分裂点

(1)是否有房

(2)婚姻状况

(3)年收入

(4)CART树原理举例

三、三种分类树的对比

|--------|----------|----------|----------------------------------------------------------------------------------|
| 名称 | 提出时间 | 分支方式 | 特点 |
| ID3 | 1975 | 信息增益 | 1.ID3只能对离散属性的数据集构成决策树 2.倾向于选择取值较多的属性 |
| C4.5 | 1993 | 信息增益率 | 1.缓解了ID3分支过程中总喜欢偏向选择值较多的属性 2.可处理连续数值型属性,也增加了对缺失值的处理方法 3.只适合于能够驻留于内存的数据集,大数据集无能为力 |
| CART | 1984 | 基尼指数 | 1.可以进行分类和回归,可处理离散属性,也可以处理连续属性 2.采用基尼指数,计算量减小 3.一定是二叉树 |

相关推荐
DDXYcoder19 分钟前
万字解析动态内存从编译到运行
java·前端·算法
阳明山水23 分钟前
概念漂移分类与自适应策略解析
人工智能·深度学习·算法·机器学习·架构
欧特克_Glodon36 分钟前
OpenCV计算机视觉开发入门与实践<二十九>:grabCut算法分割图像
opencv·算法·计算机视觉·图像分割·grabcut 算法
方方洛1 小时前
vllm教程-02-核心原理
人工智能·算法·vllm
OPEN-F1 小时前
C++并发编程:异步任务与线程池实战
开发语言·c++·算法
凉茶钱2 小时前
【数据结构】计数排序
数据结构·算法·排序算法
克里斯蒂亚诺更新2 小时前
机器学习和深度学习的主要区别--特征提取
人工智能·深度学习·机器学习
同元软控3 小时前
MWORKS EI:从数字空间到物理世界,面向具身智能产品的一体化研发环境
人工智能·机器学习
不正经学生7 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug