Day03-《西瓜书》-决策树(DataWhale)

四、决策树

(decision tree)

4.1 基本流程

决策树

  • 是通过一系列规则对数据进行分类的过程。
  • 决策树表示给定特征条件下类的条件概率分布

决策树组成

Day03-《西瓜书》-决策树(DataWhale)_第1张图片

  • 内部结点(internal node):表示一个特征或属性
  • 叶结点(leaf node):一个类别或某个值

决策树生成步骤

  • 特征选择
  • 决策树生成
  • 决策树的修剪

4.2 决策树算法

4.2.1 基础知识

信息熵

自信息
I ( X ) = − l o g b p ( x ) I(X) = -log_bp(x) I(X)=logbp(x)
熵的理论解释

(1)信息熵(自信息的期望)

X是一个取有限个解的离散随机变量,概率分布为:
P ( X = x i ) = p i , ( i = 1 , 2 , . . . , n ) P(X=x_i) = p_i, (i=1,2,...,n) P(X=xi)=pi,(i=1,2,...,n)
随机变量X的熵定义为:
H ( X ) = − ∑ i = 1 n p i l o g p i H(X) = -\sum_{i=1}^np_ilogp_i H(X)=i=1npilogpi
l o g log log l o g 2 log_2 log2时,熵的单位为比特(bit)

l o g log log l o g e log_e loge时,熵的单位为纳特(nat)

熵只依赖于X的分布,与X无关,则:
H ( p ) = − ∑ i = 1 n p i l o g p i H(p) = -\sum_{i=1}^np_ilogp_i H(p)=i=1npilogpi
熵越大,随机变量的不确定性越大: n ≤ H ( p ) ≤ l o g n n\leq H(p)\leq log_n nH(p)logn

约定:若 p ( x ) = 0 p(x)=0 p(x)=0,则 p i l o g p i = 0 p_ilogp_i=0 pilogpi=0,当X的某个取值的概率为1时信息熵最小(最确定);当X的各个取值的概率均等时信息熵最大(最不确定),其值为 l o g ∣ X ∣ , ∣ X ∣ log|X|,|X| logX,X表示X取值的个数

举例

当X服从0~1分布: P ( X = 1 ) = p ; P ( X = 0 ) = 1 − p P(X=1)=p; P(X=0)=1-p P(X=1)=p;P(X=0)=1p

熵为: H ( p ) = − p l o g 2 p − ( 1 − p ) l o g 2 ( 1 − p ) H(p)=-plog_2p-(1-p)log_2(1-p) H(p)=plog2p(1p)log2(1p)

(2)条件熵

联合概率分布为: P ( X = x i , Y = y j ) = p i j , i = 1 , 2 , . . . , n ; j = 1 , 2 , 3 , . . . , m P(X=x_i,Y=y_j)=p_{ij},i=1,2,...,n;j=1,2,3,...,m P(X=xi,Y=yj)=piji=1,2,...,n;j=1,2,3,...,m

条件熵 H ( Y ∣ X ) H(Y|X) H(YX):表示在已知随机变量X的条件下随机变量Y的不确定性,定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X) = \sum_{i=1}^n p_iH(Y|X=x_i) H(YX)=i=1npiH(YX=xi)
【当熵和条件熵中的概率由数据估计,特别是极大似然估计,得到所对应的熵与条件熵分别称为经验熵(empirical entropy) 和经验条件熵(empirical conditional entropy)】

信息增益

信息增益:特征A对训练数据集D的信息增益,g(D,A)定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)

  • 互信息(mutual information):表示得知特征X的信息而使得类Y的信息的不确定性减少的程度
  • 机器学习中的信息增益等价于训练数据集中类与特征的互信息
  • 信息增益越大,意味着使用该属性来进行划分所获得的==“纯度提升越大”==

算法

设训练数据集为D,|D| 表示样本数量,

设有K个类 C k , k = 1 , 2 , . . . , K C_k,k=1,2,...,K Ck,k=1,2,...,K,| C k C_k Ck|为所属类 C k C_k Ck的样本个数

特征A有n个不同的取值 { a 1 , a 2 , . . . a n } \{a_1, a_2,...a_n\} {a1,a2,...an}

根据A的取值将D划分为n个子集 { D 1 , , D 2 , . . . , D n } \{D_1,,D_2,...,D_n\} {D1,,D2,...,Dn}。| D i D_i Di|为 D i D_i Di的样本数量

子集 D i D_i Di中属于类 C k C_k Ck的样本集合为 D i k D_{ik} Dik,| D i k D_{ik} Dik|为 D i k D_{ik} Dik的样本个数

  • 输入:训练集D 和特征A

    • 计算D的经验熵H(D)
      E n t ( D ) = H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ Ent(D)=H(D) = -\sum_{k=1}^K\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|} Ent(D)=H(D)=k=1KDCklog2DCk

    • 计算特征A对D的经验条件熵H(D|A)
      H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) H(D|A) = \sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i) H(DA)=i=1nDDiH(Di)

    • 计算信息增益
      G a i n ( D , A ) = g ( D , A ) = H ( D ) − H ( D ∣ A ) Gain(D,A)=g(D,A) = H(D)-H(D|A) Gain(D,A)=g(D,A)=H(D)H(DA)

流程:

  • 决定分类属性
  • 建立一个结点N
  • 如果数据都属于同一类,N就是树叶,在树叶上标出所属的类;如果没有其他属性可以考虑,N也是树叶,按照少数服从多数的原则标出所属的类别
  • 否则,根据条件熵或信息增益选择最佳属性作为结点N的测试属性
  • 结点属性选定后,对于该属性中的每一个值建立子树

信息增益比(增益率)

修正信息增益偏向于选择取值较多的特征的问题

定义:信息增益与训练数据集D关于特征A的值的熵之比
g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A) = \frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)
其中,
H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2 ∣ D i ∣ ∣ D ∣ H_A(D) = -\sum_{i=1}^{n}\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|} HA(D)=i=1nDDilog2DDi

4.2.2 CLS算法

Concept Learning System

基本思想

  • 从一棵空决策树开始,选择某一属性作为测试属性,根据该属性值的不同,将训练样本分成对应的子集
    • 如果子集为空,或子集中的样本属于同一类,则选择该子集作为叶结点
    • 否则该子集对应于决策树的内部结点,需要选择一个新的分类属性对该子集进行划分,直到所有的子集都为空或属于同一类

缺点

根据某种策略从训练样本属性表中选择属性A作为测试属性。没有规定采用何种测试属性。实践表明,测试属性集的组成以及测试属性的先后对决策树的学习具有举足轻重的影响

4.2.3 ID3算法

  • 主要针对属性选择问题
  • 使用信息增益度选择测试属性
  • 在获取信息时,将不确定的内容转为确定的内容

基本思想

以信息熵为度量,用于决策树结点的属性选择,每次优先选取信息量最多的属性(熵值变为最小的属性),以构造一个熵值下降最快的决策树,到叶子结点处的熵值为0。此时,每个叶子结点对应的实例集中的实例属于同一类。

案例

Day03-《西瓜书》-决策树(DataWhale)_第2张图片

第一步:计算决策属性的熵

决策属性:“买计算机?”;该属性分两类:(买,不买)

∣ C 1 ∣ ( 买 ) |C_1|(买) C1()=128+60+64+64+64+132+64+32+32+1=641

∣ C 2 ∣ ( 不 买 ) |C_2|(不买) C2()=64+64+64+128+63=383

∣ D ∣ = ∣ C 1 ∣ + ∣ C 2 ∣ = 1024 |D|=|C_1|+|C_2|=1024 D=C1+C2=1024

P 1 = ∣ C 1 ∣ D = 641 1024 = 0.626 P_1=\frac{|C_1|}{D}=\frac{641}{1024}=0.626 P1=DC1=1024641=0.626

P 2 = 0.374 P_2=0.374 P2=0.374

H ( D ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0.9537 H(D)=-P_1log_2P_1-P_2log_2P_2=0.9537 H(D)=P1log2P1P2log2P2=0.9537

第二步:计算条件属性的熵

条件属性(4个):年龄、收入、学生、信誉

1)计算年龄的信息增益

年龄分为:青、中、老

  • 青年

∣ D 11 ∣ ( 买 ) |D_{11}|(买) D11()=64+64=128

∣ D 12 ∣ ( 不 买 ) |D_{12}|(不买) D12()=64+64+128=256

∣ D 1 ∣ |D_1| D1=128+256=284

P 1 = 128 384 P_1=\frac{128}{384} P1=384128=0.333

P 2 = 256 384 P_2=\frac{256}{384} P2=384256=0.667

H ( D 1 ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0.9183 H(D_1)=-P_1log_2P_1-P_2log_2P_2=0.9183 H(D1)=P1log2P1P2log2P2=0.9183

  • 中年

中年全部是买

H ( D 2 ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0 H(D_2)=-P_1log_2P_1-P_2log_2P_2=0 H(D2)=P1log2P1P2log2P2=0

  • 老年

H ( D 3 ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0.9157 H(D_3)=-P_1log_2P_1-P_2log_2P_2=0.9157 H(D3)=P1log2P1P2log2P2=0.9157

计算信息增益

∣ D i ∣ ∣ D ∣ \frac{|D_i|}{|D|} DDi

青年: 384 1024 = 0.375 \frac{384}{1024}=0.375 1024384=0.375

中年: 256 1024 = 0.25 \frac{256}{1024}=0.25 1024256=0.25

老年: 384 1024 = 0.375 \frac{384}{1024}=0.375 1024384=0.375

H ( D ∣ 年 龄 ) = 0.375 ∗ 0.9183 + 0.25 ∗ 0 + 0.375 ∗ 0.9157 = 0.6877 H(D|年龄)=0.375*0.9183+0.25*0+0.375*0.9157=0.6877 H(D)=0.3750.9183+0.250+0.3750.9157=0.6877

g ( D ∣ 年 龄 ) = H ( D ) − H ( D ∣ 年 龄 ) = 0.9537 − 0.6877 = 0.266 g(D|年龄)=H(D)-H(D|年龄)=0.9537-0.6877=0.266 g(D)=H(D)H(D)=0.95370.6877=0.266

同理:

H ( D ∣ 收 入 ) = 0.9361 H(D|收入)=0.9361 H(D)=0.9361

g ( D ∣ 收 入 ) = H ( D ) − H ( D ∣ 收 入 ) = 0.0176 g(D|收入)=H(D)-H(D|收入)=0.0176 g(D)=H(D)H(D)=0.0176

H ( D ∣ 学 生 ) = 0.7811 H(D|学生)=0.7811 H(D)=0.7811

g ( D ∣ 学 生 ) = H ( D ) − H ( D ∣ 学 生 ) = 0.1726 g(D|学生)=H(D)-H(D|学生)=0.1726 g(D)=H(D)H(D)=0.1726

H ( D ∣ 信 誉 ) = 0.9048 H(D|信誉)=0.9048 H(D)=0.9048

g ( D ∣ 信 誉 ) = H ( D ) − H ( D ∣ 信 誉 ) = 0.0453 g(D|信誉)=H(D)-H(D|信誉)=0.0453 g(D)=H(D)H(D)=0.0453

比较上面四种属性的信息增益,选择信息增益最大的作为结点,因此选择年龄

第三步:继续选择结点

Day03-《西瓜书》-决策树(DataWhale)_第3张图片

1) 青年之后选择收入作为结点,分为高、中、低

∣ C 1 ∣ ( 买 ) |C_1|(买) C1()=128

∣ C 2 ∣ ( 不 买 ) |C_2|(不买) C2()=256

∣ D ∣ |D| D=384

∣ P 1 ∣ |P_1| P1 = 0.333

∣ P 2 ∣ |P_2| P2 = 0.667

H ( D ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0.9183 H(D)=-P_1log_2P_1-P_2log_2P_2=0.9183 H(D)=P1log2P1P2log2P2=0.9183

收入高:

∣ D 11 ∣ ( 买 ) |D_{11}|(买) D11()=0

∣ D 12 ∣ ( 不 买 ) |D_{12}|(不买) D12()=128

∣ D 1 ∣ |D_1| D1=128

P 1 = 0 128 P_1=\frac{0}{128} P1=1280=0

P 2 = 128 128 P_2=\frac{128}{128} P2=128128=1

H ( D 1 ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0 H(D_1)=-P_1log_2P_1-P_2log_2P_2=0 H(D1)=P1log2P1P2log2P2=0

比例: 128 384 = 0.333 \frac{128}{384}=0.333 384128=0.333

同理:

收入中: H ( D 2 ) = 0.9183 H(D_2)=0.9183 H(D2)=0.9183

收入中比例:0.5

收入低: H ( D 3 ) = 0 H(D_3)=0 H(D3)=0

收入低比例:0.167

H ( 年 龄 ∣ 收 入 ) = 0.333 ∗ 0 + 0.5 ∗ 0.9183 + 0 ∗ 0.167 = 0.4592 H(年龄|收入)=0.333*0+0.5*0.9183+0*0.167=0.4592 H()=0.3330+0.50.9183+00.167=0.4592

g ( 年 龄 ∣ 收 入 ) = H ( D ) [ 青 年 ] − H ( 年 龄 ∣ 收 入 ) = 0.9183 − 0.4592 = 0.4591 g(年龄|收入)= H(D)[青年]-H(年龄|收入)=0.9183-0.4592=0.4591 g()=H(D)[]H()=0.91830.4592=0.4591

2) 青年之后选择学生作为结点,分为是、否

是学生:

∣ D 11 ∣ ( 买 ) |D_{11}|(买) D11()=128

∣ D 12 ∣ ( 不 买 ) |D_{12}|(不买) D12()=0

∣ D 1 ∣ |D_1| D1=128

P 1 = 128 128 P_1=\frac{128}{128} P1=128128=1

P 2 = 0 128 P_2=\frac{0}{128} P2=1280=0

H ( D 1 ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0 H(D_1)=-P_1log_2P_1-P_2log_2P_2=0 H(D1)=P1log2P1P2log2P2=0

比例: 128 384 = 0.333 \frac{128}{384}=0.333 384128=0.333

同理:

不是学生: H ( D 2 ) = 0 H(D_2)=0 H(D2)=0

不是学生:0.667

H ( 年 龄 ∣ 学 生 ) = 0.333 ∗ 0 + 0.667 ∗ 0 = 0 H(年龄|学生)=0.333*0+0.667*0=0 H()=0.3330+0.6670=0

g ( 年 龄 ∣ 学 生 ) = H ( D ) [ 青 年 ] − H ( 年 龄 ∣ 学 生 ) = 0.9183 − 0 = 0.9183 g(年龄|学生)= H(D)[青年]-H(年龄|学生)=0.9183-0=0.9183 g()=H(D)[]H()=0.91830=0.9183

3) 青年之后选择信誉作为结点,分为良、优

信誉良:

∣ D 11 ∣ ( 买 ) |D_{11}|(买) D11()=64

∣ D 12 ∣ ( 不 买 ) |D_{12}|(不买) D12()=192

∣ D 1 ∣ |D_1| D1=256

P 1 = 64 256 P_1=\frac{64}{256} P1=25664=0.25

P 2 = 192 256 P_2=\frac{192}{256} P2=256192=0.75

H ( D 1 ) = − P 1 l o g 2 P 1 − P 2 l o g 2 P 2 = 0.8113 H(D_1)=-P_1log_2P_1-P_2log_2P_2=0.8113 H(D1)=P1log2P1P2log2P2=0.8113

比例: 256 384 = 0.667 \frac{256}{384}=0.667 384256=0.667

同理:

信誉优: H ( D 2 ) = 1 H(D_2)=1 H(D2)=1

信誉优比例:0.333

H ( 年 龄 ∣ 信 誉 ) = 0.667 ∗ 0.8113 + 0.333 ∗ 1 = 0.8741 H(年龄|信誉)=0.667*0.8113+0.333*1=0.8741 H()=0.6670.8113+0.3331=0.8741

g ( 年 龄 ∣ 信 誉 ) = H ( D ) [ 青 年 ] − H ( 年 龄 ∣ 学 生 ) = 0.9183 − 0.8741 = 0.0442 g(年龄|信誉)= H(D)[青年]-H(年龄|学生)=0.9183-0.8741=0.0442 g()=H(D)[]H()=0.91830.8741=0.0442

通过比较信息增益,青年之后选择学生属性继续划分,熵值为0即可暂停

决策树

Day03-《西瓜书》-决策树(DataWhale)_第4张图片

不足

  • 连续特征问题
  • 信息增益作为标准容易偏向取值较多的特征
  • 缺失值问题
  • 过拟合问题

4.2.4 C4.5算法

来源:https://www.cnblogs.com/keye/p/10267473.html

优化ID3的四个问题:

1. 对不能处理连续值特征

将连续的特征离散化

  • 将m个连续样本从小到大排序
  • 取相邻两个样本值得平均数,得到m-1个划分点
  • 对m-1个划分点,分别计算以该点作为二元分类点时得信息增益。选择信息增益最大点作为该连续特征的二元离散分类点(比如取到的增益最大的点为 a t a_t at,则小于 a t a_t at的值为类别1,大于 a t a_t at的值为类别2,这样就做到了连续特征的离散化。注意的是,与离散属性不同,如果当前节点为连续属性,则该属性后面还可以参与子节点的产生选择过程)
  • 信息增益比选择最佳划分

2. 对信息增益容易偏取值较多特征的问题

选择信息增益比作为标准

3. 对于缺失值处理的问题

  1. 样本某些特征缺失情况下选择划分的属性

​ 对于有缺失特征值的特征属性A,对每一个样本设置一个权重(初始值为1),然后划分数据,一部分是由特征值A的数据 D 1 D_1 D1,另一部分是没有特征A的数据 D 2 D_2 D2,然后对于没有缺失特征A的数据集 D 1 D_1 D1来和对应的A特征的每个特征值一起计算加权重后的信息增益比,最后乘上特征A缺失的样本加权后所占加权总样本的比例。

  1. 选定了划分属性,对于在该属性上缺失特征的样本的处理

​ 将缺失特征的样本同时划分入所有的子节点,该样本的权重按各个结点样本的数量比例来分配。

​ 例如:缺失特征A的样本a之前权重为1,特征A有3个特征值 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3。3个特征值对应的无缺失A特征的样本个数为2,3,4。则a同时划分入 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3对应权重调整为 ( 2 9 , 3 9 , 4 9 ) (\frac{2}{9},\frac{3}{9},\frac{4}{9}) (92,93,94)

不足与改进

  • 非常容易过拟合。需要进行剪枝
  • 生成的是多叉树,效率不如二叉树
  • 只能用于分类
  • 使用了熵模型,有大量对数计算,运算强度高。可以用基尼系数代替熵模型

4.2.5 CART算法

来源:https://www.cnblogs.com/keye/p/10564914.html

使用基尼系数代替信息增益比。

基尼系数

  • 代表了模型的不纯度
  • 基尼系数越小,不纯度越低,特征越好。【与信息增益(比)相反】

价格K个类别,第k个类别的概率为 P k P_k Pk概率分布的基尼系数表达式:
G i n i ( P ) = ∑ k = 1 K P k ( 1 − P k ) = 1 − ∑ k = 1 K P k 2 Gini(P) = \sum_{k=1}^KP_k(1-P_k)=1-\sum_{k=1}^KP_k^2 Gini(P)=k=1KPk(1Pk)=1k=1KPk2
二分类问题,第一个样本输出概率为p,则概率分布的基尼系数为:
G i n i ( P ) = 2 p ( 1 − p ) Gini(P) = 2p(1-p) Gini(P)=2p(1p)
对于样本D,个数|D|,类别为K,第k个类别的数量为 ∣ C k ∣ |C_k| Ck,则样本D的基尼系数为:
G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\sum_{k=1}^K(\frac{|C_k|}{|D|})^2 Gini(D)=1k=1K(DCk)2
对于样本D,个数|D|,根据特征A将D划分为n类,则在特征A的条件下,样本D的基尼系数表达式为:
G i n i ( D , A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ G i n i ( D i ) Gini(D,A) = \sum_{i=1}^n\frac{|D_i|}{|D|}Gini(D_i) Gini(D,A)=i=1nDDiGini(Di)
CART分类树算法每次仅对某一特征的值进行二分,不进行多分,可以建立二叉树

案例

Day03-《西瓜书》-决策树(DataWhale)_第5张图片

1) 计算各特征的基尼系数

∣ D ∣ |D| D=15

( A 1 , A 2 , A 3 , A 4 ) (A_1,A_2,A_3,A_4) (A1,A2,A3,A4)代表(年龄, 收入, 学生, 信誉)

A 1 A_1 A1取值(1, 2 ,3)代表(青,中,老)

A 2 A_2 A2取值(1, 2, 3)代表(低,中,高)

A 3 A_3 A3取值(1, 2)代表(是,否)

A 4 A_4 A4取值(1, 2)代表(良,优)

G i n i ( D , A 1 = 1 ) = 5 15 ∗ ( 2 × 2 5 × ( 1 − 2 5 ) ) + 10 15 ∗ ( 2 × 8 10 × ( 1 − 8 10 ) ) = 0.3733 Gini(D,A_1=1)=\frac{5}{15}*(2\times\frac{2}{5}\times(1-\frac{2}{5}))+\frac{10}{15}*(2\times\frac{8}{10}\times(1-\frac{8}{10}))=0.3733 Gini(D,A1=1)=155(2×52×(152))+1510(2×108×(1108))=0.3733

G i n i ( D , A 1 = 2 ) = 4 15 ∗ ( 2 × 4 4 × ( 1 − 4 4 ) ) + 11 15 ∗ ( 2 × 6 11 × ( 1 − 6 11 ) ) = 0.3636 Gini(D,A_1=2)=\frac{4}{15}*(2\times\frac{4}{4}\times(1-\frac{4}{4}))+\frac{11}{15}*(2\times\frac{6}{11}\times(1-\frac{6}{11}))=0.3636 Gini(D,A1=2)=154(2×44×(144))+1511(2×116×(1116))=0.3636

G i n i ( D , A 1 = 3 ) = 6 15 ∗ ( 2 × 4 6 × ( 1 − 4 6 ) ) + 9 15 ∗ ( 2 × 6 9 × ( 1 − 6 9 ) ) = 0.4444 Gini(D,A_1=3)=\frac{6}{15}*(2\times\frac{4}{6}\times(1-\frac{4}{6}))+\frac{9}{15}*(2\times\frac{6}{9}\times(1-\frac{6}{9}))=0.4444 Gini(D,A1=3)=156(2×64×(164))+159(2×96×(196))=0.4444

基尼系数最小的为 A 1 A_1 A1=2,所以 A 1 = 2 A_1=2 A1=2 A 1 A_1 A1的最优切分点

A 2 A_2 A2的基尼系数:

G i n i ( D , A 2 = 1 ) = 4 15 ∗ ( 2 × 3 4 × ( 1 − 3 4 ) ) + 11 15 ∗ ( 2 × 7 11 × ( 1 − 7 11 ) ) = 0.4394 Gini(D,A_2=1)=\frac{4}{15}*(2\times\frac{3}{4}\times(1-\frac{3}{4}))+\frac{11}{15}*(2\times\frac{7}{11}\times(1-\frac{7}{11}))=0.4394 Gini(D,A2=1)=154(2×43×(143))+1511(2×117×(1117))=0.4394

G i n i ( D , A 2 = 2 ) = 6 15 ∗ ( 2 × 4 6 × ( 1 − 4 6 ) ) + 9 15 ∗ ( 2 × 6 9 × ( 1 − 6 9 ) ) = 0.4444 Gini(D,A_2=2)=\frac{6}{15}*(2\times\frac{4}{6}\times(1-\frac{4}{6}))+\frac{9}{15}*(2\times\frac{6}{9}\times(1-\frac{6}{9}))=0.4444 Gini(D,A2=2)=156(2×64×(164))+159(2×96×(196))=0.4444

G i n i ( D , A 2 = 3 ) = 4 15 ∗ ( 2 × 2 4 × ( 1 − 2 4 ) ) + 11 15 ∗ ( 2 × 8 11 × ( 1 − 8 11 ) ) = 0.4242 Gini(D,A_2=3)=\frac{4}{15}*(2\times\frac{2}{4}\times(1-\frac{2}{4}))+\frac{11}{15}*(2\times\frac{8}{11}\times(1-\frac{8}{11}))=0.4242 Gini(D,A2=3)=154(2×42×(142))+1511(2×118×(1118))=0.4242

基尼系数最小的为 A 2 A_2 A2=3,所以 A 2 = 3 A_2=3 A2=3 A 2 A_2 A2的最优切分点

A 3 A_3 A3的基尼系数

G i n i ( D , A 3 = 1 ) = 7 15 ∗ ( 2 × 6 7 × ( 1 − 6 7 ) ) + 8 15 ∗ ( 2 × 5 8 × ( 1 − 4 8 ) ) = 0.381 Gini(D,A_3=1)=\frac{7}{15}*(2\times\frac{6}{7}\times(1-\frac{6}{7}))+\frac{8}{15}*(2\times\frac{5}{8}\times(1-\frac{4}{8}))=0.381 Gini(D,A3=1)=157(2×76×(176))+158(2×85×(184))=0.381

A 3 A_3 A3只有两类,所以 A 3 = 1 A_3=1 A3=1 A 3 = 2 A_3=2 A3=2结果一致】

A 4 A_4 A4的基尼系数

G i n i ( D , A 4 = 1 ) = 8 15 ∗ ( 2 × 6 8 × ( 1 − 6 8 ) ) + 7 15 ∗ ( 2 × 4 7 × ( 1 − 4 7 ) ) = 0.4286 Gini(D,A_4=1)=\frac{8}{15}*(2\times\frac{6}{8}\times(1-\frac{6}{8}))+\frac{7}{15}*(2\times\frac{4}{7}\times(1-\frac{4}{7}))=0.4286 Gini(D,A4=1)=158(2×86×(186))+157(2×74×(174))=0.4286

在( A 1 , A 2 , A 3 , A 4 A_1,A_2,A_3,A_4 A1,A2,A3,A4)中, G i n i ( D , A 1 = 2 ) Gini(D,A_1=2) Gini(D,A1=2)最小,所以A_1为最优特征, A 1 = 2 A_1=2 A1=2为其最优切分点

年龄根结点生成一个叶结点【是中年属性为:买】,一个内部结点【不是中年】,然后再使用上述方法,在不是中年的样本中继续进行基尼系数计算,选择出最优特征及最优切分点

你可能感兴趣的:(机器学习(理论篇))