信息熵,信息增益详解

信息熵

信息熵的意义

信息熵主要研究的是对一个信号能够提供信息的多少进行量化。1948年,香农引入信息熵,将其定义为离散随机事件的出现概率。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以说,信息熵可以被认为是系统有序化程度的一个度量

信息熵的定义

如果一个随机变量 Y Y Y的可能取值为: X = y 1 , y 2 , ⋯ y n X={y_1, y_2,\cdots y_n} X=y1,y2,yn,其概率分布分别为: P ( y i ) P(y_i) P(yi)。则随机变量 Y Y Y的熵定义为:
H ( Y ) = ∑ i = 1 n − P ( y i ) l o g ( P ( y i ) ) H(Y)=\sum_{i=1}^n -P(y_i)log(P(y_i)) H(Y)=i=1nP(yi)log(P(yi))

信息熵的值越大,说明越不确定

在信息论中,常常用以2为底的对数来计算,计算出来的单位称为bits;在机器学习中,常常用自然对数来计算,计算出来的单位称为nats。以下,都采用自然对数来进行计算

条件熵的定义

条件熵表示在条件 X X X Y Y Y 的信息熵,记作:
H ( Y ∣ X ) = ∑ i = 1 n P ( x i ) H ( Y ∣ x i ) = ∑ i = 1 n { P ( x i ) ∗ [ − ∑ j = 1 m P ( Y j ∣ x i ) l o g ( P ( Y j ∣ x i ) ) ] } H(Y|X)=\sum_{i=1}^{n} P(x_i)H(Y|x_i)=\sum_{i=1}^n \{P(x_i)*[-\sum_{j=1}^m P(Y_j|x_i)log(P(Y_j|x_i))]\} H(YX)=i=1nP(xi)H(Yxi)=i=1n{P(xi)[j=1mP(Yjxi)log(P(Yjxi))]}

x i x_i xi:条件 X X X的每种可能取值,假设共有 n n n种取值
P ( x i ) P(x_i) P(xi):具有 x i x_i xi取值的样本在总样本种所占的比例
H ( Y ∣ x i ) H(Y|x_i) H(Yxi):选取所有包含 x i x_i xi取值的样本,基于随机变量 Y Y Y来计算信息熵
Y j ∣ x i Y_j|x_i Yjxi:所有包含 x i x_i xi取值的样本中,特征 Y Y Y的第 j j j种取值(假设共有 m m m种取值)
P ( Y j ∣ x i ) P(Y_j |x_i) P(Yjxi):所有包含 x i x_i xi取值的样本中, Y j Y_j Yj取值所占的比例

信息增益

信息增益 = 信息熵 - 条件熵

信息增益描述了一个特征带来的信息量的多少,常用于决策树的构建和特征选择

信息增益越大,就越说明该特征对确定某个事件的贡献越大(降低了某个事件的不确定性),或者说,该特征是某个事件的主要特征

案例1:计算下列系统的信息熵、条件熵和信息增益
假设有下列训练样本:

设置"是否外出打球"这一随机变量为 Y Y Y,湿度为随机变量 X X X

信息熵计算

先统计 P ( y = n o ) = 5 / 14 ; P ( y = y e s ) = 9 / 14 ; n = 2 P(y=no)=5/14; P(y=yes) = 9/14; n=2 P(y=no)=5/14;P(y=yes)=9/14;n=2
则: H ( Y ) = − 5 / 14 ∗ l o g ( 5 / 14 ) − 9 / 14 ∗ l o g ( 9 / 14 ) = 0.6518 H(Y)=-5/14*log(5/14) - 9/14*log(9/14)=0.6518 H(Y)=5/14log(5/14)9/14log(9/14)=0.6518
条件熵计算
统计: P ( x = h i g h ) = 7 / 14 = 1 / 2 ; P ( x = n o r m a l ) = 7 / 14 = 1 / 2 P(x=high) = 7/14=1/2; P(x=normal)=7/14=1/2 P(x=high)=7/14=1/2;P(x=normal)=7/14=1/2
H ( Y ∣ X 湿度 ) = P ( x = h i g h ) ∗ H ( Y ∣ x = h i g h ) + P ( x = n o r m a l ) ∗ H ( Y ∣ x = n o r m a l ) H(Y|X_{\text{湿度}} ) = P(x=high)*H(Y|x=high)+P(x=normal)*H(Y|x=normal) H(YX湿度)=P(x=high)H(Yx=high)+P(x=normal)H(Yx=normal)
而:
H ( Y ∣ x = h i g h ) = − P ( Y = y e s ∣ x = h i g h ) ∗ l o g ( P ( Y = y e s ∣ x = h i g h ) − P ( Y = n o ∣ x = h i g h ∗ l o g ( P ( Y = n o ∣ x = h i g h ) = − 3 / 7 ∗ l o g ( 3 / 7 ) − 4 / 7 ∗ l o g ( 4 / 7 ) = 0.6829 \begin{aligned} H(Y|x=high)&=-P(Y=yes|x=high)*log(P(Y=yes|x=high)- P(Y=no|x=high*log(P(Y=no|x=high) \\ & =-3/7*log(3/7)-4/7*log(4/7)=0.6829 \end{aligned} H(Yx=high)=P(Y=yesx=high)log(P(Y=yesx=high)P(Y=nox=highlog(P(Y=nox=high)=3/7log(3/7)4/7log(4/7)=0.6829
H ( Y ∣ x = n o r m a l ) = − 6 / 7 ∗ l o g ( 6 / 7 ) − 1 / 7 ∗ l o g ( 1 / 7 ) = 0.4101 H(Y|x=normal)=-6/7*log(6/7)-1/7*log(1/7)=0.4101 H(Yx=normal)=6/7log(6/7)1/7log(1/7)=0.4101
最终:
H ( Y ∣ X 湿度 ) = 1 / 2 ∗ 0.6829 + 1 / 2 ∗ 0.4101 = 0.5465 H(Y|X_{\text{湿度}})=1/2*0.6829+1/2*0.4101=0.5465 H(YX湿度)=1/20.6829+1/20.4101=0.5465

信息增益计算

信息增益 = 信息熵 - 条件熵=0.6518-0.5465=0.1053
也就是说,引入了湿度这个变量之后,就使得是否打球这个变量的信息熵就从0.6518减小到了0.5465,变得更加确定了

确定最关键的特征变量

信息增益越大,该特征变量就越关键
考虑到系统的总信息熵是固定不变的,因此,某特征变量的条件熵越小,该变量就越关键

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值