C4.5决策树示例

该案例分析基于C4.5决策树算法,计算了性别、学历、学校和经验四个特征的信息熵、条件熵、信息增益、固有属性IV和增益率。结果显示,学历具有最高的信息增益和增益率,因此首先以学历作为划分节点。后续分析中,学历依然具有最高信息增益,成为第二次划分的依据。

C4.5决策树案例分析

本次案例分析是对C4.5决策树有所了解后,实现的手动推理

一. 数据

ID性别学历学校经验是否录用
1本科985
2本科211
3研究生普通
4大专普通
5本科985
6研究生普通
7本科211
8大专普通
9本科普通
10本科普通
11本科211
12研究生211

二. 分析

存在四种影响特征,且均为离散型变量(连续型变量需要离散化),最终的标签只有两类(是/否)

注意:以下计算过程中,结果保留三位小数,采用四舍五入

三. 总体信息熵

样本12个,是 = 8,否 = 4

84

H(X)=−812×log⁡2812−412×log⁡2412≈0.918 \begin{aligned} H(X) &= -\frac{8}{12} \times \log _2 \frac{8}{12} - \frac{4}{12} \times \log _2 \frac{4}{12} \\ &\approx 0.918 \end{aligned} H(X)=128×log2128124×log21240.918

四. 分析变量

4.1 分析第一个自变量:性别

ID性别学历学校经验是否录用
1本科985
2研究生211
3研究生普通
4研究生普通
5本科211
6本科211
7大专普通
8本科普通
9大专普通
10本科211
11本科985
12本科普通

4.1.1 计算性别为男的信息熵

样本9个,是 = 6,否 = 3

63

H(X,性别=男)=−69×log⁡269−39×log⁡239≈0.918 \begin{aligned} H(X, 性别 = 男) &= -\frac{6}{9} \times \log _2 \frac{6}{9} - \frac{3}{9} \times \log _2 \frac{3}{9} \\ &\approx 0.918 \end{aligned} H(X,性别=)=96×log29693×log2930.918

4.1.2 计算性别为女的信息熵

样本3个,是 = 2,否 = 1

21

H(X,性别=女)=−23×log⁡223−13×log⁡213≈0.918 \begin{aligned} H(X, 性别 = 女) &= -\frac{2}{3} \times \log _2 \frac{2}{3} - \frac{1}{3} \times \log _2 \frac{1}{3} \\ &\approx 0.918 \end{aligned} H(X,性别=)=32×log23231×log2310.918

4.1.3 计算性别的条件熵
H(X,性别)=912×0.918+312×0.918=0.918 \begin{aligned} H(X, 性别) &= \frac{9}{12} \times 0.918 + \frac{3}{12} \times 0.918 \\ &= 0.918 \end{aligned} H(X,性别)=129×0.918+123×0.918=0.918
4.1.4 计算性别的信息增益
Gain(X,性别)=H(X)−H(X,性别)=0.918−0.918=0 \begin{aligned} Gain(X, 性别) &= H(X) - H(X, 性别) \\ & = 0.918 - 0.918 \\ & = 0 \end{aligned} Gain(X,性别)=H(X)H(X,性别)=0.9180.918=0
4.1.5 计算性别的固有属性IV
IV=−∑v=1V∣Dv∣∣D∣×log⁡2∣Dv∣∣D∣ \begin{aligned} IV= - \sum _{v = 1}^{V} \frac{\\|D^v\\|}{\\|D\\|} \times \log _2 \frac{\\|D^v\\|}{\\|D\\|} \end{aligned} IV=v=1VDDv×log2DDv

IV(X,性别)=−912×log⁡2912−312×log⁡2312≈0.811 \begin{aligned} IV(X, 性别) &= - \frac{9}{12} \times \log _2 \frac{9}{12} - \frac{3}{12} \times \log _2 \frac{3}{12} \\ &\approx 0.811 \end{aligned} IV(X,性别)=129×log2129123×log21230.811

4.1.6 计算性别的增益率
Gain_ratio=GainIV \begin{aligned} Gain\_ratio= \frac {Gain}{IV} \end{aligned} Gain_ratio=IVGain

Gain_ratio(X,性别)=00.811=0 \begin{aligned} Gain\_ratio(X, 性别) &= \frac {0}{0.811} \\ &= 0 \end{aligned} Gain_ratio(X,性别)=0.8110=0

4.2 分析第二个自变量:学历

ID性别学历学校经验是否录用
1大专普通
2大专普通
3本科985
4本科211
5本科985
6本科211
7本科211
8本科普通
9本科普通
10研究生211
11研究生普通
12研究生普通

4.2.1 计算学历为大专的信息熵

样本2个,是 = 0,否 = 2

02

H(X,学历=大专)=−02×log⁡202−22×log⁡222=0 \begin{aligned} H(X, 学历 = 大专) &= -\frac{0}{2} \times \log _2 \frac{0}{2} - \frac{2}{2} \times \log _2 \frac{2}{2} \\ &= 0 \end{aligned} H(X,学历=大专)=20×log22022×log222=0

4.2.2 计算学历为本科的信息熵

样本7个,是 = 5,否 = 2

52

H(X,学历=本科)=−57×log⁡257−27×log⁡227≈0.863 \begin{aligned} H(X, 学历 = 本科) &= -\frac{5}{7} \times \log _2 \frac{5}{7} - \frac{2}{7} \times \log _2 \frac{2}{7} \\ &\approx 0.863 \end{aligned} H(X,学历=本科)=75×log27572×log2720.863

4.2.3 计算学历为研究生的信息熵

样本3个,是 = 3,否 = 0

30

H(X,学历=研究生)=−33×log⁡233−03×log⁡203=0 \begin{aligned} H(X, 学历 = 研究生) &= -\frac{3}{3} \times \log _2 \frac{3}{3} - \frac{0}{3} \times \log _2 \frac{0}{3} \\ &= 0 \end{aligned} H(X,学历=研究生)=33×log23330×log230=0

4.2.4 计算学历的条件熵
H(X,学历)=212×0+712×0.863+312×0≈0.503 \begin{aligned} H(X, 学历) &= \frac{2}{12} \times 0 + \frac{7}{12} \times 0.863 + \frac{3}{12} \times 0 \\ &\approx 0.503 \end{aligned} H(X,学历)=122×0+127×0.863+123×00.503
4.2.5 计算学历的信息增益
Gain(X,学历)=H(X)−H(X,学历)=0.918−0.503=0.415 \begin{aligned} Gain(X, 学历) &= H(X) - H(X, 学历) \\ & = 0.918 - 0.503 \\ & = 0.415 \end{aligned} Gain(X,学历)=H(X)H(X,学历)=0.9180.503=0.415
4.2.6 计算学历的固有属性IV
IV(X,学历)=−212×log⁡2212−712×log⁡2712−312×log⁡2312≈1.384 \begin{aligned} IV(X, 学历) &= - \frac{2}{12} \times \log _2 \frac{2}{12} - \frac{7}{12} \times \log _2 \frac{7}{12} - \frac{3}{12} \times \log _2 \frac{3}{12} \\ &\approx 1.384 \end{aligned} IV(X,学历)=122×log2122127×log2127123×log21231.384
4.2.7 计算学历的增益率
Gain_ratio(X,学历)=0.4151.384≈0.300 \begin{aligned} Gain\_ratio(X, 学历) &= \frac {0.415}{1.384} \\ &\approx 0.300 \end{aligned} Gain_ratio(X,学历)=1.3840.4150.300

4.3 分析第三个自变量:学校

ID性别学历学校经验是否录用
1本科985
2本科985
3本科211
4研究生211
5本科211
6本科211
7研究生普通
8研究生普通
9大专普通
10本科普通
11本科普通
12大专普通

4.3.1 计算学校为普通学校的信息熵

样本6个,是 = 2,否 = 4

24

H(X,学校=普通)=−26×log⁡226−46×log⁡246≈0.918 \begin{aligned} H(X, 学校 = 普通) &= -\frac{2}{6} \times \log _2 \frac{2}{6} - \frac{4}{6} \times \log _2 \frac{4}{6} \\ &\approx 0.918 \end{aligned} H(X,学校=普通)=62×log26264×log2640.918

4.3.2 计算学校为211的信息熵

样本4个,是 = 4,否 = 0

40

H(X,学校=211)=−44×log⁡244−04×log⁡204=0 \begin{aligned} H(X, 学校 = 211) &= -\frac{4}{4} \times \log _2 \frac{4}{4} - \frac{0}{4} \times \log _2 \frac{0}{4} \\ &= 0 \end{aligned} H(X,学校=211)=44×log24440×log240=0

4.3.3 计算学校为985的信息熵

样本2个,是 = 2,否 = 0

20

H(X,学校=985)=−22×log⁡222−02×log⁡202=0 \begin{aligned} H(X, 学校 = 985) &= -\frac{2}{2} \times \log _2 \frac{2}{2} - \frac{0}{2} \times \log _2 \frac{0}{2} \\ &= 0 \end{aligned} H(X,学校=985)=22×log22220×log220=0

4.3.4 计算学校的条件熵
H(X,学校)=612×0.918+412×0+212×0=0.459 \begin{aligned} H(X, 学校) &= \frac{6}{12} \times 0.918 + \frac{4}{12} \times 0 + \frac{2}{12} \times 0 \\ &= 0.459 \end{aligned} H(X,学校)=126×0.918+124×0+122×0=0.459
4.3.5 计算学校的信息增益
Gain(X,学校)=H(X)−H(X,学校)=0.918−0.459=0.459 \begin{aligned} Gain(X, 学校) &= H(X) - H(X, 学校) \\ & = 0.918 - 0.459 \\ & = 0.459 \end{aligned} Gain(X,学校)=H(X)H(X,学校)=0.9180.459=0.459
4.3.6 计算学校的固有属性IV
IV(X,学校)=−612×log⁡2612−412×log⁡2412−212×log⁡2212≈1.459 \begin{aligned} IV(X, 学校) &= - \frac{6}{12} \times \log _2 \frac{6}{12} - \frac{4}{12} \times \log _2 \frac{4}{12} - \frac{2}{12} \times \log _2 \frac{2}{12} \\ &\approx 1.459 \end{aligned} IV(X,学校)=126×log2126124×log2124122×log21221.459

4.3.7 计算学校的增益率
Gain_ratio(X,学校)=0.4591.459≈0.315 \begin{aligned} Gain\_ratio(X, 学校) &= \frac {0.459}{1.459} \\ &\approx 0.315 \end{aligned} Gain_ratio(X,学校)=1.4590.4590.315

4.4 分析第四个自变量:经验

ID性别学历学校经验是否录用
1本科985
2本科211
3本科985
4本科211
5本科211
6研究生211
7本科普通
8研究生普通
9研究生普通
10大专普通
11大专普通
12本科普通

4.4.1 计算经验为无的信息熵

样本7个,是 = 6,否 = 1

61

H(X,经验=无)=−67×log⁡267−17×log⁡217≈0.592 \begin{aligned} H(X, 经验 = 无) &= -\frac{6}{7} \times \log _2 \frac{6}{7} - \frac{1}{7} \times \log _2 \frac{1}{7} \\ &\approx 0.592 \end{aligned} H(X,经验=)=76×log27671×log2710.592

4.4.2 计算经验为有的信息熵

样本5个,是 = 2,否 = 3

23

H(X,经验=有)=−25×log⁡225−35×log⁡235≈0.971 \begin{aligned} H(X, 经验 = 有) &= -\frac{2}{5} \times \log _2 \frac{2}{5} - \frac{3}{5} \times \log _2 \frac{3}{5} \\ &\approx 0.971 \end{aligned} H(X,经验=)=52×log25253×log2530.971

4.4.3 计算经验的条件熵
H(X,经验)=712×0.592+512×0.971=0.750 \begin{aligned} H(X, 经验) &= \frac{7}{12} \times 0.592 + \frac{5}{12} \times 0.971 \\ &= 0.750 \end{aligned} H(X,经验)=127×0.592+125×0.971=0.750
4.4.4 计算经验的信息增益
Gain(X,经验)=H(X)−H(X,经验)=0.918−0.750=0.168 \begin{aligned} Gain(X, 经验) &= H(X) - H(X, 经验) \\ & = 0.918 - 0.750 \\ & = 0.168 \end{aligned} Gain(X,经验)=H(X)H(X,经验)=0.9180.750=0.168
4.4.5 计算经验的固有属性IV
IV(X,经验)=−712×log⁡2712−512×log⁡2512≈0.980 \begin{aligned} IV(X, 经验) &= - \frac{7}{12} \times \log _2 \frac{7}{12} - \frac{5}{12} \times \log _2 \frac{5}{12} \\ &\approx 0.980 \end{aligned} IV(X,经验)=127×log2127125×log21250.980
4.4.6 计算经验的增益率
Gain_ratio(X,经验)=0.1680.980≈0.171 \begin{aligned} Gain\_ratio(X, 经验) &= \frac {0.168}{0.980} \\ &\approx 0.171 \end{aligned} Gain_ratio(X,经验)=0.9800.1680.171

五. 信息增益与增益率的统计

增益率信息增益
性别00
学历0.3000.415
学校0.3150.459
经验0.1710.168

六. 选择划分的节点

6.1 计算平均信息增益

G‾=0+0.415+0.459+0.1684=0.261 \begin{aligned} \overline{G} &= \frac{0 + 0.415 + 0.459 + 0.168}{4} \\ & = 0.261 \end{aligned} G=40+0.415+0.459+0.168=0.261

在自变量中,找到其信息增益高于平均信息增益的变量,再选择增益率最高的变量作为划分的节点

6.2 选择节点

其中学校与学历的信息增益均高于平均信息增益,但学校的增益率更高,因此选择学校作为第一个节点

七. 以学校作为根节点

在这里插入图片描述

八. 将剩余的6个样本用其他三个自变量进一步划分

九. 待划分的数据

ID性别学历学校经验是否录用
1研究生普通
2大专普通
3研究生普通
4大专普通
5本科普通
6本科普通

十. 带划分数据的总体信息熵

样本6个,是 = 2,否 = 4

24

H(X1)=−26×log⁡226−46×log⁡246≈0.918 \begin{aligned} H(X_1) &= -\frac{2}{6} \times \log _2 \frac{2}{6} - \frac{4}{6} \times \log _2 \frac{4}{6} \\ &\approx 0.918 \end{aligned} H(X1)=62×log26264×log2640.918

十一. 分析剩余变量

11.1 分析第一个剩余变量:性别

ID性别学历学校经验是否录用
1研究生普通
2研究生普通
3大专普通
4大专普通
5本科普通
6本科普通

11.1.1 计算性别为男的信息熵

样本5个,是 = 2,否 = 3

23

H(X1,性别=男)=−25×log⁡225−35×log⁡235≈0.971 \begin{aligned} H(X_1, 性别 = 男) &= -\frac{2}{5} \times \log _2 \frac{2}{5} - \frac{3}{5} \times \log _2 \frac{3}{5} \\ &\approx 0.971 \end{aligned} H(X1,性别=)=52×log25253×log2530.971

11.1.2 计算性别为女的信息熵

样本1个,是 = 0,否 = 1

01

H(X1,性别=女)=−01×log⁡201−11×log⁡211=0 \begin{aligned} H(X_1, 性别 = 女) &= -\frac{0}{1} \times \log _2 \frac{0}{1} - \frac{1}{1} \times \log _2 \frac{1}{1} \\ &= 0 \end{aligned} H(X1,性别=)=10×log21011×log211=0

11.1.3 计算性别的条件熵
H(X1,性别)=56×0.971+16×0≈0.809 \begin{aligned} H(X_1, 性别) &= \frac{5}{6} \times 0.971 + \frac{1}{6} \times 0 \\ &\approx 0.809 \end{aligned} H(X1,性别)=65×0.971+61×00.809
11.1.4 计算性别的信息增益
Gain(X1,性别)=H(X1)−H(X1,性别)=0.918−0.809=0.109 \begin{aligned} Gain(X_1, 性别) &= H(X_1) - H(X_1, 性别) \\ & = 0.918 - 0.809 \\ & = 0.109 \end{aligned} Gain(X1,性别)=H(X1)H(X1,性别)=0.9180.809=0.109
11.1.5 计算性别的固有属性IV
IV(X1,性别)=−56×log⁡256−16×log⁡216≈0.650 \begin{aligned} IV(X_1, 性别) &= - \frac{5}{6} \times \log _2 \frac{5}{6} - \frac{1}{6} \times \log _2 \frac{1}{6} \\ &\approx 0.650 \end{aligned} IV(X1,性别)=65×log26561×log2610.650
11.1.6 计算性别的增益率
Gain_ratio(X1,性别)=0.1090.650≈0.168 \begin{aligned} Gain\_ratio(X_1, 性别) &= \frac {0.109}{0.650} \\ &\approx 0.168 \end{aligned} Gain_ratio(X1,性别)=0.6500.1090.168

11.2 分析第二个剩余变量:学历

ID性别学历学校经验是否录用
1大专普通
2大专普通
3本科普通
4本科普通
5研究生普通
6研究生普通

11.2.1 计算学历为大专的信息熵

样本2个,是 = 0,否 = 2

02

H(X1,学历=大专)=−02×log⁡202−22×log⁡222=0 \begin{aligned} H(X_1, 学历 = 大专) &= -\frac{0}{2} \times \log _2 \frac{0}{2} - \frac{2}{2} \times \log _2 \frac{2}{2} \\ &= 0 \end{aligned} H(X1,学历=大专)=20×log22022×log222=0

11.2.2 计算学历为本科的信息熵

样本2个,是 = 0,否 = 2

02

H(X1,学历=本科)=−02×log⁡202−22×log⁡222=0 \begin{aligned} H(X_1, 学历 = 本科) &= -\frac{0}{2} \times \log _2 \frac{0}{2} - \frac{2}{2} \times \log _2 \frac{2}{2} \\ &= 0 \end{aligned} H(X1,学历=本科)=20×log22022×log222=0

11.2.3 计算学历为研究生的信息熵

样本2个,是 = 2,否 = 0

20

H(X1,学历=本科)=−22×log⁡222−02×log⁡202=0 \begin{aligned} H(X_1, 学历 = 本科) &= -\frac{2}{2} \times \log _2 \frac{2}{2} - \frac{0}{2} \times \log _2 \frac{0}{2} \\ &= 0 \end{aligned} H(X1,学历=本科)=22×log22220×log220=0

11.2.4 计算学历的条件熵
H(X1,学历)=26×0+26×0+26×0=0 \begin{aligned} H(X_1, 学历) &= \frac{2}{6} \times 0 + \frac{2}{6} \times 0 + \frac{2}{6} \times 0\\ &= 0 \end{aligned} H(X1,学历)=62×0+62×0+62×0=0
11.2.5 计算学历的信息增益
Gain(X1,学历)=H(X1)−H(X1,学历)=0.918−0=0.918 \begin{aligned} Gain(X_1, 学历) &= H(X_1) - H(X_1, 学历) \\ & = 0.918 - 0 \\ & = 0.918 \end{aligned} Gain(X1,学历)=H(X1)H(X1,学历)=0.9180=0.918
11.2.6 计算学历的固有属性IV
IV(X1,学历)=−26×log⁡226−26×log⁡226−26×log⁡226≈1.585 \begin{aligned} IV(X_1, 学历) &= - \frac{2}{6} \times \log _2 \frac{2}{6} - \frac{2}{6} \times \log _2 \frac{2}{6} - \frac{2}{6} \times \log _2 \frac{2}{6} \\ &\approx 1.585 \end{aligned} IV(X1,学历)=62×log26262×log26262×log2621.585
11.2.7 计算学历的增益率
Gain_ratio(X1,学历)=0.9181.585≈0.579 \begin{aligned} Gain\_ratio(X_1, 学历) &= \frac {0.918}{1.585} \\ &\approx 0.579 \end{aligned} Gain_ratio(X1,学历)=1.5850.9180.579

11.3 分析第三个剩余变量:经验

ID性别学历学校经验是否录用
1研究生普通
2研究生普通
3大专普通
4大专普通
5本科普通
6本科普通

11.3.1 计算经验为无的信息熵

样本1个,是 = 0,否 = 1

01

H(X1,经验=无)=−01×log⁡201−11×log⁡211=0 \begin{aligned} H(X_1, 经验 = 无) &= -\frac{0}{1} \times \log _2 \frac{0}{1} - \frac{1}{1} \times \log _2 \frac{1}{1} \\ &= 0 \end{aligned} H(X1,经验=)=10×log21011×log211=0

11.3.2 计算经验为有的信息熵

样本5个,是 = 2,否 = 3

23

H(X1,经验=有)=−25×log⁡225−35×log⁡235≈0.971 \begin{aligned} H(X_1, 经验 = 有) &= -\frac{2}{5} \times \log _2 \frac{2}{5} - \frac{3}{5} \times \log _2 \frac{3}{5} \\ &\approx 0.971 \end{aligned} H(X1,经验=)=52×log25253×log2530.971

11.3.3 计算经验的条件熵
H(X1,经验)=16×0+56×0.971≈0.809 \begin{aligned} H(X_1, 经验) &= \frac{1}{6} \times 0 + \frac{5}{6} \times 0.971 \\ &\approx 0.809 \end{aligned} H(X1,经验)=61×0+65×0.9710.809
11.3.4 计算经验的信息增益
Gain(X1,经验)=H(X1)−H(X1,经验)=0.918−0.809=0.109 \begin{aligned} Gain(X_1, 经验) &= H(X_1) - H(X_1, 经验) \\ & = 0.918 - 0.809 \\ & = 0.109 \end{aligned} Gain(X1,经验)=H(X1)H(X1,经验)=0.9180.809=0.109
11.3.5 计算经验的固有属性IV
IV(X1,经验)=−56×log⁡256−16×log⁡216≈0.650 \begin{aligned} IV(X_1, 经验) &= - \frac{5}{6} \times \log _2 \frac{5}{6} - \frac{1}{6} \times \log _2 \frac{1}{6} \\ &\approx 0.650 \end{aligned} IV(X1,经验)=65×log26561×log2610.650
11.3.6 计算经验的增益率
Gain_ratio(X1,经验)=0.1090.650≈0.168 \begin{aligned} Gain\_ratio(X_1, 经验) &= \frac {0.109}{0.650} \\ &\approx 0.168 \end{aligned} Gain_ratio(X1,经验)=0.6500.1090.168

十二. 增益率与信息增益的统计

信息增益增益率
性别0.1090.168
学历0.9180.579
经验0.1090.168

十三. 选择划分的节点

13.1 计算平均信息增益

G‾=0.109+0.918+0.1093≈0.379 \begin{aligned} \overline{G} &= \frac{0.109 + 0.918 + 0.109}{3} \\ & \approx 0.379 \end{aligned} G=30.109+0.918+0.1090.379

13.2 选择节点

只有学历的信息增益高于平均信息增益,因此选择学历作为节点

十四. 以学历作为节点再次分裂

在这里插入图片描述

十五. 手推实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本次案例是对C4.5决策树的手推实现,如果有小伙伴有具体的代码实现讲解更好了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值