一、离散随机变量
设为离散型随机变量的所有可能值;而是取的概率,即
则称为(离散)随机变量的概率分布,而且它满足下面的条件:
在现实中,通常这个随机变量的取值个数是可数的。这里假设随机变量的取值个数为个,那么随机变量的概率分布可以表示为
可见,这是一个集合。而在Python中,可以这认为是一个列表(list)。换句话说,在熵时,我们需要传入一个list这样的数据格式。
二、熵的计算公式
假设具有个取值个数的随机变量的概率分布为,那么随机变量的熵被定义为
通常使用以2为底的对数函数。
三、使用scipy.stats.entropy计算
scipy.stats.entropy提供了一种熵的计算方法,其中的对数函数的底默认为自然数e,也可以指定具体的底。调用方法为
from scipy.stats import entropy
entropy_a = entropy([0/9, 0/9, 9/9])
entropy_b = entropy([1/999, 1/999, 997/999])
entropy_c = entropy([0/9, 1/9, 8/9])
entropy_d = entropy([1/9, 3/9, 5/9])
entropy_e = entropy([1/3, 1/3, 1/3])
entropy_f = entropy([1/3, 1/3, 1/3], base=2)
print(entropy_a)
print(entropy_b)
print(entropy_c)
print(entropy_d)
print(entropy_e)
print(entropy_f)
四、计算结果
0.0
0.01582733355150361
0.34883209584303193
0.9368883075390159
1.0986122886681096
1.584962500721156
五、参考
李贤平,概率论基础[M],高等教育出版社
Kevin P. Murphy,Machine Learning A Probabilistic Perspective,The MIT Press
文章出处登录后可见!
已经登录?立即刷新