代码先锋网 代码片段及技术文章聚合

使用Python计算离散随机变量的熵(Entropy)

技术标签: Python相关  学习记录  python    随机变量

一、离散随机变量

        设\{x_i\}为离散型随机变量\xi的所有可能值;而p(x_i)\xix_i的概率,即

P(\xi = x_i)=p(x_i), i=1,2,3,...

\{p(x_i), i=1,2,3,...\}称为(离散)随机变量\xi的概率分布,而且它满足下面的条件:

p(x_i)\geqslant 0, i=1,2,3,...

\sum_{i=1}^{\infty}p(x_i)=1

        在现实中,通常这个随机变量\xi的取值个数是可数的。这里假设随机变量\xi的取值个数为N个,那么随机变量\xi的概率分布可以表示为

\{p(x_1), p(x_2),...,p(x_N)\}

        可见,这是一个集合。而在Python中,可以这认为是一个列表(list)。换句话说,在熵时,我们需要传入一个list这样的数据格式。

二、熵的计算公式

        假设具有N个取值个数的随机变量\xi的概率分布为\{p(x_1), p(x_2),...,p(x_N)\},那么随机变量\xi的熵被定义为

\mathbb{H}(\xi)\triangleq -\sum_{i=1}^{N}p(x_i)\log_2{p(x_i)}

通常使用以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

        scipy.stats.entropy — SciPy v1.8.1 Manual

版权声明:本文为qq_36158230原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36158230/article/details/124900489

智能推荐

随机事件与随机变量

文章目录 一、随机事件 1.基本概念释义 2.概率 1.定义: 2.主要性质: 3.古典概型 4.条件概率 5.全概率公式和贝叶斯公式 二、随机变量 1.随机变量及其分布 2. 离散型随机变量 3.常见的离散型分布 1.伯努利实验,二项分布 4.随机变量的数字特征 1.数学期望 2.方差 (3)协方差和相关系数 一、随机事件 1.基本概念释义 现实生活中,一个动作或一件事情,在一定条件下,所得的结...

Matlab求解离散型二维随机变量的概率密度分布

数学公式什么的没有。 做实验计算联合熵需要使用概率密度。 函数accumarray不是太行,方阵中很多的0浪费内存,我可没有几百G的内存ε=(´ο`*)))唉。 Matlab代码实现 实例 没有实例。...

JS随机变量名

转载原文地址 动态生成全局变量: //简单的用字符串作为变量名 //批量定义 解释:所有的全局变量都存在window变量里。window是个js本身定义的变量,类型为object。 访问全局变量var0 相当于访问window.var0,也相当于window[“var0”]。 局部变量最好用object吧: //批量定义 跟上面同理,只是不能隐式调用变量,而是得显示的写出o...

[概率论]-随机变量

#(一)随机变量的概念 随机变量主要有离散型和连续型两类: 若随机变量只可能取有限个或可数无限个值 时,则称之为离散型随机变量。 若随机变量可以取一个区间中的所有实数 时,则称之为连续型随机变量。 #(二)随机变量的例子 #(三)随机变量的概率 #(四)离散型随机变量的分布律 要掌握或描述一个离散型随机变量X的统计规 律,必须且只需知道X的所有可能的取值,以及每一个可能的取值的概率。 为直观起见,...

随机变量代码生成

免责申明:上传资料仅供学习交流使用,禁止一切不正当使用行为,如有事故本人概不负责 1.均匀分布 2.二项分布 X~ b(n, p) 3.几何分布 X~ Ge(p) 4. 指数分布 X~ Exp(λ) 5. 泊松分布 X~ P(λ) 6. 正态分布 X~ N(μ, σ^2) 免责申明:上传资料仅供学习交流使用,禁止一切不正当使用行为,如有事故本人概不负责...

猜你喜欢

随机变量及其分布之一维随机变量

1.一维随机变量 ​ 首先需要介绍,分布函数和密度函数的概念,离散型和连续型都有分布函数,定义为: P(X≤k)=F(x) P(X\le k) = F(x) P(X≤k)=F(x) 称F(x)F(x)F(x)为分布函数,简写为dfdfdf。 对于连续型随机变量而言,F(x)还可以写成如下形式: F(x)=∫−∞xf(x)dx F(x)=\int_{-\i...

1. 随机事件与随机变量

一、随机事件 1.基本概念释义 现实生活中,一个动作或一件事情,在一定条件下,所得的结果不能预先完全确定,而只能确定是多种可能结果中的一种,称这种现象为随机现象。 ​ 例如,抛掷一枚硬币,其结果有可能是出现正面,也有可能是出现反面;掷骰子游戏中,出现的数字可能是1,2,3,4,5,6其中的任意一个。以上这些现象都是随机现象。 使随机现象得以实现和对它观察的全过程称为随机试验,记为**EEE**。随...

Task01 随机事件与随机变量

1、基本概念 现实生活中,一个动作或一件事情,在一定条件下,所得的结果不能预先完全确定,而只能确定是多种可能结果中的一种,称这种现象为随机现象。使随机现象得以实现和对它观察的全过程称为随机试验。 称随机试验的所有可能结果组成的集合为样本空间。 试验的每一个可能结果称为样本点。 称样本空间中满足一定条件的子集为随机事件。另外,随机事件在随机试验中可能出现也可能不出现。 在试验中,称一个事件发生是指构...

Task01:随机事件与随机变量

这里写自定义目录标题 随机事件 基本概念释义 概率 古典概率 条件概率 全概率公式和贝叶斯概率公式 随机变量 随机变量及其分布 常见的离散型分布 伯努利试验 二项分布 随机变量的数字特征 期望 方差 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中、居左、居右 SmartyPants 创建一...