熵、信息增益、信息增益率与基尼指数

 本文主要介绍了熵,信息增益,信息增益率和基尼指数的基本概念,并使用数据样例进行了计算。

数据样例

名称是否用鳃呼吸有无鱼鳍是否为鱼
鲨鱼
鲫鱼
河蚌
海豚

 熵是度量样本集合纯度最常用的一种指标,对于包含m个训练样本的数据集 D:{(X(1),(y(1)),(X(2),(y(2)),,(X(m),(y(m)),} D : { ( X ( 1 ) , ( y ( 1 ) ) , ( X ( 2 ) , ( y ( 2 ) ) , , ⋯ , ( X ( m ) , ( y ( m ) ) , } ,在数据集D中,第k类的样本所占的比例为 pk p k ,则数据集D的信息熵为:

Enytoy(D)=k=1Kpklog2pk E n y t o y ( D ) = − ∑ k = 1 K p k l o g 2 p k

 其中,K表示的是数据集D中类别的个数。对于数据样例中的,是否为鱼这一结果。其信息熵为;
Entroy(D)=k=12pklog2pk=(25log225+35log235)=0.971(1) (1) E n t r o y ( D ) = − ∑ k = 1 2 p k l o g 2 p k = − ( 2 5 l o g 2 2 5 + 3 5 l o g 2 3 5 ) = 0.971

 当样本按照特征A的值a划分成两个独立的子数据集 D1 D 1 D2 D 2 时,此时整个数据集D的熵分为两个独立数据集 D1 D 1 的熵和 D2 D 2 的熵的加权和,即:
Entroy(D)=|D1||D|Entroy(D1)+|D2||D|Entroy(D2)=(|D1||D|k=1Kpklog2pk+|D2||D|k=1Kpklog2pk)(2) (2) E n t r o y ( D ) = | D 1 | | D | E n t r o y ( D 1 ) + | D 2 | | D | E n t r o y ( D 2 ) = − ( | D 1 | | D | ∑ k = 1 K p k l o g 2 p k + | D 2 | | D | ∑ k = 1 K p k l o g 2 p k )

 其中, |D1| | D 1 | 表示的是数据集 D1 D 1 中的样本的个数, |D2| | D 2 | 表示的是数据集 D2 D 2 中的样本的个数。对于数据样例,将样本按照特征“是否用鳃呼吸”划分成两个独立的子数据集,此时,数据集D的信息熵为:
Entroy(D)=35Entroy(D1)+25Entroy(D2)=[35(23log223+13log213)+25(log21)]=0.551(3) (3) E n t r o y ( D ) = 3 5 E n t r o y ( D 1 ) + 2 5 E n t r o y ( D 2 ) = − [ 3 5 ( 2 3 l o g 2 2 3 + 1 3 l o g 2 1 3 ) + 2 5 ( l o g 2 1 ) ] = 0.551

信息增益

 由上述的划分可以看出,在划分后的数据集D的信息熵减小了,对于给定的数据集,划分前后信息熵的减少量称为信息增益(information gain),即:

igain(D,A)=Entroy(D)p=1P|Dp||D|Entroy(Dp) i g a i n ( D , A ) = E n t r o y ( D ) − ∑ p = 1 P | D p | | D | E n t r o y ( D p )

 其中, |Dp| | D p | 表示的是属于第 p p 类的样本个数。信息熵表示的数据集中的不纯度,信息熵较小表明数据集纯度提升了。在选择数据集划分的标准时,通常选择能够使的信息增益最大的划分。ID3决策树算法就是利用信息增益作为划分数据集的一种方法。数据样例中,
(4)igain(D,)=Entroy(D)p=1P|Dp||D|Entroy(Dp)=0.9710.551=0.44

信息增益率

 增益率(Gain Ratio)是可以作为选择最优划分属性的方法,增益率的计算公式为:

gain_ratio(D,A)=igain(D,A)IV(A) g a i n _ r a t i o ( D , A ) = i g a i n ( D , A ) I V ( A )

 其中, IV(A) I V ( A ) 被称为特征A的固有值,即:
IV(A)=p=1P|Dp||D|log2|Dp||D| I V ( A ) = − ∑ p = 1 P | D p | | D | l o g 2 | D p | | D |

 在数据样例中,是否用鳃呼吸作为特征A,其 IV(A) I V ( A ) 为:
IV(A)=p=1P|Dp||D|log2|Dp||D|=[35log235+25log225]=0.971(5) (5) I V ( A ) = − ∑ p = 1 P | D p | | D | l o g 2 | D p | | D | = − [ 3 5 l o g 2 3 5 + 2 5 l o g 2 2 5 ] = 0.971

 信息增益率为:
gain_ratio(D,A)=igain(D,A)IV(A)=0.9710.44=2.0682(6) (6) g a i n _ r a t i o ( D , A ) = i g a i n ( D , A ) I V ( A ) = 0.971 0.44 = 2.0682

 在著名的C4.5决策树算法中就是利用增益率作为划分数据集的方法。

基尼指数

 基尼指数(Gini index)也可以选择最优的划分属性,对于数据集D,假设有K个分类,则样本属于第k个类的概率为 pk p k 则此概率分布的基尼系数为:

Gini(p)=k=1Kpk(1pk)=k=1K(pkp2k)=1k=1Kp2k(7) (7) G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = ∑ k = 1 K ( p k − p k 2 ) = 1 − ∑ k = 1 K p k 2

 对于数据集D,其基尼指数为:

Gini(D)=1k=1K(|Ck||D|)2 G i n i ( D ) = 1 − ∑ k = 1 K ( | C k | | D | ) 2

 其中, |Ck| | C k | 表示数据集D中,属于类别 k k 的样本的个数。若此时根据特征A将数据集D划分为独立的两个数据集D1 D2 D 2 ,此时的基尼指数为:
Gini(D,A)=|D1||D|Gini(|D1|)+|D2||D|Gini(|D2|) G i n i ( D , A ) = | D 1 | | D | G i n i ( | D 1 | ) + | D 2 | | D | G i n i ( | D 2 | )

 在数据样例中,数据集D的基尼指数(针对是否为鱼而言):
Gini(D)=1k=1Kp2k=1[(25)2+(35)2]=0.48(9) (9) G i n i ( D ) = 1 − ∑ k = 1 K p k 2 = 1 − [ ( 2 5 ) 2 + ( 3 5 ) 2 ] = 0.48

 利用特征“是否用鳃呼吸”将数据集D划分成独立的两个数据集 D1 D 1 D2 D 2 后,其基尼指数为:
Gini(D,A)=|D1||D|Gini(|D1|)+|D2||D|Gini(|D2|)=35[1((25)2+(13)2)]+25[11]=0.267(10) (10) G i n i ( D , A ) = | D 1 | | D | G i n i ( | D 1 | ) + | D 2 | | D | G i n i ( | D 2 | ) = 3 5 [ 1 − ( ( 2 5 ) 2 + ( 1 3 ) 2 ) ] + 2 5 [ 1 − 1 ] = 0.267

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值