一篇文章讲清楚: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分类生成树采用的基尼指数最小化策略。

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

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

注意:
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.一定是二叉树 |

相关推荐
dialect_1 天前
KMP算法
开发语言·c++·算法
reikocao1 天前
卡尔曼滤波的动态机制:P如何改变融合权重
算法
漂流瓶jz1 天前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
吞下星星的少年·-·1 天前
Div.2 CF 1130B题(构造,贪心)
算法·贪心·构造
是main不是漫1 天前
【双指针——移动零】数组划分类题目的入门基石
c++·算法
深圳市快瞳科技有限公司1 天前
野外鸟类AI识别落地实录:输入适配、结构化输出、去重聚合与置信度分流的工程实践
算法·计算机视觉·鸟类识别·鸟类ai识别·野外鸟类观测·林业调查
专注仿真1 天前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
小豆庄1 天前
视频遮罩追踪退场后ID撞号的排查—多目标场景下的失效
opencv·算法·bug·视频·python3.11
Tisfy1 天前
LeetCode 3882.网格图中最小异或路径:动态规划
算法·leetcode·动态规划
Rocky Ding*1 天前
深入浅出GroundingPI技术解析:精确空间感知如何迁移到机器人动作
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·具身智能