熵的介绍

一、熵(entropy)
熵是从物理热力学中引出来的概念,代表了粒子的无规则运动的剧烈程度。熵越大,粒子的无规则运动越剧烈;熵越小,粒子越倾向于静止的状态,即它们的状态越确定。熵代表随机变量的不确定性程度。熵越大,随机变量的不确定性就越大。

设随机变量 X=x1,x2,...,xn X = x 1 , x 2 , . . . , x n 。其概率分布为

P(X=xi)=pi,i=1,2,...,n P ( X = x i ) = p i , i = 1 , 2 , . . . , n

则随机变量 X X 的熵定义为

H(X)=i=1npilog(pi)(1.1)

在式子1.1中,有 pi1 p i ≤ 1 ,故` log(pi)0 l o g ( p i ) ≤ 0 ,故式子1.1的前面要加个负号。

另外有 0log0=0 0 l o g 0 = 0 ,当对数的底为2时,熵的单位为bit;当对数的底为e时,熵的单位为nat。

X={x1,x2,x3} X = { x 1 , x 2 , x 3 } :

1、当 x1,x2,x3 x 1 , x 2 , x 3 分布的概率分别为 13,13,13 1 3 , 1 3 , 1 3 时,有

H(X)=i=13pilog(pi)=i=1313log(13)=1.0986(1.2) H ( X ) = − ∑ i = 1 3 p i l o g ( p i ) = − ∑ i = 1 3 1 3 l o g ( 1 3 ) = 1.0986 ( 1.2 )

2、当 x1,x2,x3 x 1 , x 2 , x 3 分布的概率分别为 110,210,710 1 10 , 2 10 , 7 10 时,有

H(X)=i=13pilog(pi)=110log(110)210log(210)710log(710)=0.8018(1.3) H ( X ) = − ∑ i = 1 3 p i l o g ( p i ) = − 1 10 l o g ( 1 10 ) − 2 10 l o g ( 2 10 ) − 7 10 l o g ( 7 10 ) = 0.8018 ( 1.3 )

3、当 x1,x2,x3 x 1 , x 2 , x 3 分布的概率分别为 1,0,0 1 , 0 , 0 时,有

H(X)=i=13pilog(pi)=1log(1)0log(0)0log(0)=0(1.4) H ( X ) = − ∑ i = 1 3 p i l o g ( p i ) = − 1 l o g ( 1 ) − 0 l o g ( 0 ) − 0 l o g ( 0 ) = 0 ( 1.4 )

在式子1.2和1.3的比较中,式子1.3中熵的值比式子1.2中熵的值大,说明在情况2中,变量X的不确定性较小。因为情况2中, x3 x 3 出现的概率为7/10,稳定性很高。

在情况3中, x1 x 1 出现的概率为1,即变量 X=x1 X = x 1 恒成立,变量 X X 的稳定性非常高,熵的取值最小,即H(X)=0

如果是二分类问题,即变量取值只有两种,例如 X={x1,x2} X = { x 1 , x 2 } 。假设 P(X=x1)=p1 P ( X = x 1 ) = p 1 ,则 P(X=x2)=p2=1p1 P ( X = x 2 ) = p 2 = 1 − p 1 。则变量 X X 的熵为

H(X)=i=12pilog(pi)=p1log(p1)p2log(p2)=p1log(p1)(1p1)log[(1p1)](1.5)

在式子1.5中, pi p i 的取值范围为 0 到 1。

下面的代码画出 pi p i 取值为0.01到0.99的过程中,熵 H(X) H ( X ) 的取值曲线图。

import numpy as np
import matplotlib.pyplot as plt

#计算二分类中熵的值,设二分类中X的取值x1和x2,取x1的概率为p,则取x2的概率为1-p。
#如果传入的p是一个数组,则方法entopy(p)会计算p中每个元素值的熵,然后以数组的形式返回所有的结果
def entropy(p):
    return -p * np.log(p) - (1-p) * np.log(1-p)

#pVec是一个等差数组,包括200个元素,起始值为0.01,最后一个值为0.99。
pVec = np.linspace(start = 0.01, stop =0.99, num =200)
print(type(pVec))
plt.plot(pVec,entropy(pVec)) #画图
plt.show() # 将图显示出来

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值