问题标签 [information-theory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
232 浏览

machine-learning - 将 Levenshtein 距离转换为错误率

他们是一种将莱文斯坦距离转换为错误率的方法吗?

错误率是序列中不完全相同的部分。

0 投票
1 回答
15733 浏览

matlab - 香农熵计算

我有一个概率分布,它定义了n可能状态发生的概率。

我想计算给定概率分布的香农熵值(以位为单位)。

我可以wentropy(x,'shannon')用来获取值吗?如果可以,我可以在哪里定义系统可能具有的状态数?

0 投票
2 回答
2253 浏览

r - 使用 MuMIn 使用 QAIC 对模型进行排名

我需要使用 QAIC 标准对候选模型进行排名。这是我尝试过的:

这将返回此错误:

如何使用 QAIC 对上述模型进行排名?

0 投票
1 回答
934 浏览

r - R中连续变量的Tsallis熵

离散变量的Tsallis 熵定义为:

连续变量的 Tsallis 熵定义为:

其中p(x)是数据的概率密度函数,并且int是积分的。

我正在尝试在 R 中实现 Tsallis 熵。

假设我有以下数据(由 beta 函数生成,但假设分布未知

离散变量的 Tsallis 熵为:

我现在想计算连续变量的 Tsallis 熵:

正如我所料,这两个结果是不同的。但为何如此不同?我的主要问题是:计算连续变量的 Tsallis 熵的代码是否正确?请记住,我假设分布是未知的。

0 投票
2 回答
556 浏览

matlab - 具有指定概率密度的二进制向量

假设我正在使用二进制向量 {0,1}。我只想将 p=[0,1] 之类的输入参数作为输入参数,并具有与给定概率相对应的确切数量的零(给定向量的长度,例如“N”),我应该将它们按随机顺序排列.

例如,对于 p=0.5 和 N=8,我想要类似 [0 0 1 0 1 1 0 1] 或 [1 1 0 0 1 0 0 1] 的东西,重要的是要有 50% 的零以随机顺序。如有必要,当无法表示时(即 p=0.200034 和 N=8),它应该四舍五入。

我做了 X = (rand(1,N)<=(1-p)); 但显然它并不总是给出确切的密度。另一种解决方案是为 cicle 做一个,并使用累加器以随机顺序访问向量,但我认为应该有一个更好(更快)的解决方案。

谢谢

0 投票
1 回答
945 浏览

information-theory - 二进制擦除通道中的互信息

想象一下Wikipedia上描述的二进制擦除通道。

描述互信息的一个方程如下:

为什么是“ p(y=?) • H(x)" and not "p(y=?) • H(x|y=?)”?

0 投票
2 回答
3919 浏览

compression - GZIP 或 DEFLATE 最多可以增加文件大小是多少?

众所周知,GZIP 或 DEFLATE(或任何压缩机制)有时会增加文件大小。文件可以增加的最大值(百分比或常数)吗?它是什么?

如果一个文件是 X 字节,我要压缩它,我需要提前为文件空间做预算——最坏的情况是什么?

更新:有两个开销:GZIP 添加一个标头,通常为 18 个字节,但基本上是任意长的。放气呢?这可以通过乘法因子扩展内容,我不知道。有谁知道它是什么?

0 投票
1 回答
25243 浏览

image - 两幅图像的互信息和联合熵 - MATLAB

我有两张黑白图像,我需要计算互信息。

我知道互信息可以定义为:

MATLAB 已经内置了计算熵但不计算联合熵的函数。我想真正的问题是:如何计算两张图像的联合熵?

这是我想找到联合熵的图像示例:

0 投票
2 回答
5761 浏览

python - 如何计算 N 个变量的香农熵和互信息

我需要计算互信息,因此需要计算 N 个变量的香农熵。

我写了一个代码来计算某些分布的香农熵。假设我有一个变量 x,数字数组。按照香农熵的定义,我需要计算归一化的概率密度函数,因此使用 numpy.histogram 很容易得到它。

选择插入 x,并仔细选择此功能起作用的 bin 编号。

但是这个函数非常依赖于 bin 编号:选择这个参数的不同值我得到不同的值。

特别是如果我的输入是一组值常量:

这个变量的熵显然必须为 0,但是如果我选择等于 1 的 bin 编号,我会得到正确的答案,如果我选择不同的值,我会得到奇怪的无意义(否定)答案.. 我的感觉是 numpy .histogram 具有参数 normed=True 或 density= True (如官方文档中所述)它们应该返回归一化的直方图,并且可能在我从概率密度函数切换时出现一些错误(numpy的输出.histogram)到概率质量函数(香农熵的输入),我这样做:

我想找到解决这些问题的方法,我想有一种有效的方法来计算独立于 bin 数的香农熵。

我写了一个函数来计算更多变量分布的香农熵,但我得到了同样的错误。代码是这样的,其中函数 shannon_entropydd 的输入是数组,其中在每个位置都有必须参与统计计算的每个变量

我需要这些数量才能计算某些变量集之间的互信息:

M_info(x,y,z)= H(x)+H(z)+H(y)- H(x,y,z)

其中 H(x) 是变量 x 的香农熵

我必须找到一种方法来计算这些数量,所以如果有人有一种完全不同的代码,我可以打开它,我不需要修复这个代码,而是找到一个正确的方法来计算这个统计函数!

0 投票
1 回答
3402 浏览

performance - spark中熵的高效计算

给定一个 RDD(数据)和一个要计算熵的索引字段列表。执行以下流程时,在 2MB(16k 行)源上计算单个熵值大约需要 5 秒。

debugString 的输出如下:

如果我收集RDD并再次并行化,则需要大约 150 毫秒来计算(对于一个简单的 2MB 文件来说,这似乎仍然很高)——并且在处理多 GB 数据时显然会带来挑战。正确使用 Spark 和 Scala 我缺少什么?

我最初的实现(表现更糟):