问题标签 [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 投票
3 回答
16603 浏览

c++ - opencv中灰度图像的熵

我需要代码来查找图像的熵。

实际上,我正在使用它来转储可编程相机来测量熵。现在我想在windows系统中使用它。我将灰色图像的熵设为零。请帮帮我。我哪里做错了。

0 投票
1 回答
217 浏览

memory - 为什么不同的数据类型为相同的数据占用更多的内存?

例如,如果我想存储数字 1,我可以使用integer type占用32 位的 a 或long type占用64 位的 a ,但是两种数据类型的信息量(从符号的角度来看)是相同的.

0 投票
0 回答
547 浏览

r - model.avg 返回错误 dim(x) 必须具有正长度。代码以前可以工作,但是我更改了一个参数的值并且它已损坏

我正在尝试将一个新参数插入到我已经使用了几个月(没有问题)的一些模型平均代码中,现在我收到了一条我以前从未见过的错误消息。

我的代码如下

最后一行是我收到以下错误消息的地方

这段代码之前运行良好,我所做的只是更改 predictor6 的值。数据中没有 NA 值,class(predictor6) 为两个数据集返回数字,并且 predictor6 的最大最小值仍在它们之前的范围内。

我的代码是相同的。这个错误是什么意思,我为什么会得到它,我该如何修复它?

任何帮助都将不胜感激。提前非常感谢。

=========================

编辑:建议我运行traceback()以查看哪个调用函数引发了错误。我以前从未使用过这个函数,但这是我运行它时返回的内容:

0 投票
2 回答
699 浏览

encoding - 字母表的明确二进制编码方案

一个古老的英国信息学奥林匹克问题(3c)询问字母表的最小明确编码方案(仅使用两个符号 - 因此是二进制)是什么。据我所知,答案是 130 - 存储每个字母需要 5 位,因为 2^4 < 26。字母表有 26 个字符,因此编码方案是 5*26 位长。但是,标记方案声明可以使用 124 位。这么长的编码方案是什么?

0 投票
2 回答
206 浏览

unix - 发送信号是否发送了一位信息?

对在 UNIX 系统中实现的传统信号发送工具的描述有时将“发送信号”的动作与“发送一点信息”区别开来。这个鉴定准确吗?

这种描述的例子

UNIX 环境中的高级编程(W. Richard Stevens,Stephen A. Rago)提供了这种描述的一个示例,其中sigqueue函数的描述 ( 10.20 ) 声称“通常信号携带一位信息:信号本身。”</p>

为什么一个信号实际上携带 0 位信息

信号没有状态,所以它的状态用 0 位信息来描述。携带信息的只是实际发生的传输。

发送 2 位信息与连续发送 2 次 1 位信息相同,所以如果一个信号要传达 1 位信息,我们可以通过发送 2 次向进程发送 2 位信息(相同)信号,这看起来是不可能的。

0 投票
2 回答
13876 浏览

r - R中互信息的计算

我在解释熵包中的mi.plugin()(or ) 函数的结果时遇到问题。mi.empirical()据我了解, MI=0 告诉您要比较的两个变量是完全独立的;并且随着 MI 的增加,这两个变量之间的关联越来越非随机。

那么,为什么在 R 中运行以下命令(使用{entropy}包)时,我得到的值为 0:

mi.plugin( rbind( c(1, 2, 3), c(1, 2, 3) ) )

当我比较两个完全相同的向量时?

我认为我的困惑是基于我的理论误解,有人可以告诉我哪里出错了吗?

提前致谢。

0 投票
2 回答
533 浏览

java - 在生成一组对象的散列时,使用 hashCode() 的输出作为 SHA256 的输入而导致的任何安全强度损失

我有一个对象集合,我希望从这个对象集合中生成一个哈希值(使用 SHA256)。

散列这些对象的过程是零知识证明系统的一部分,证明者生成证明,稍后由验证者验证。这个证明实际上是一个哈希函数的输出。

这些对象都包含 3 或 4 个大的 BigInteger 值(大约 2048 位)。对象的数量是可变的,但它会在 4 到 10 之间。

我编写了以下方法来从可变数量的对象生成哈希值:

我的问题与此代码中 hashCode 方法的使用有关。具体来说,我试图确定使用 hashCode 方法是否会削弱系统的安全性,因为它只生成一个 32 位的数字,因此在每次迭代期间,哈希仅更新 32 位的信息。所以我不确定在这个过程中信息的丢失是否真的削弱了系统。

这些对象的 hashCode 方法的实现使用大的 BigInteger 值来生成它们的哈希码,但是该数字在返回之前会被截断为 int。

我的部分担忧源于这样一个事实,即某些对象的哈希码之间相对可能会发生冲突。但是话又说回来,哈希在循环内会更新几次,因此单个冲突不会是一个大问题。

让我们假设对象集合中有 4 个对象。在循环的第一次迭代中,将使用 32 位来更新哈希,在第二次迭代中,将使用另外 32 位来更新它,等等。

据我了解,哈希算法是在调用更新方法之后执行的。不是将 128 位(4 个对象)存储在缓冲区中,然后使用这 128 位作为输入执行散列算法。

因此,我们是否可以说在最终更新后哈希将处于的状态总数为 (2^32) * (2^32) * (2^32) * (2^32)?(在实践中这当然不会发生,因为它会在某些时候被截断)。

我相信使用 hashCode 是一种安全的方法,因为在每次迭代期间都会调用 update 方法。

为了避免对象之间发生冲突的风险,另一种方法是使用每个对象的 toString() 方法,该方法返回一个包含每个对象的全部熵的字符串(大的 BigInteger 数字的值包含在字符串)。这意味着在循环的每次迭代期间,哈希都会更新更多信息,但我不确定这是否有必要。

那么,我的问题是,在这段代码中使用 hashCode 方法会削弱系统的强度吗?

0 投票
3 回答
165 浏览

string - 如何区分 C++ 中的两个非常长的字符串?

我想解决 Levenshtein_distance这个字符串长度太大的问题。

Edit2:
正如Bobah所说的那样,标题是小姐领先,所以我更新了 questoin 的标题。
初始title was如何在 C++ 中声明 100000x100000 二维整数?
Content was
有任何方法可以在 c++ 中声明 int x[100000][100000] 。
当我全局声明它时,编译器会生成 error: size of array ‘x’ is too large.
一种方法可能是使用map< pair< int , int > , int > mymap.
但是分配和解除分配需要更多时间。
还有其他像 uisng 的方式vector<int> myvec

0 投票
0 回答
603 浏览

java - 如何处理信息增益属性评估中的缺失属性值

我正在尝试使用 weka 提供的信息增益库来评估选择的属性,但是如果决定如何对实例进行分类的属性并不总是提供值,则它不起作用。很难解释,所以举个例子:

这是我的关系。它由 3 个数字属性和一个类属性组成。如果属性 3 取值 5000,则分类设置为失败。

执行 Information Gain Attribute Evaluator 后,输出如下:

现在,属性 3 应该是最高排名,因为它的值决定了实例被归类为失败还是正确。但不知何故,情况并非如此。

所以,我的问题是:如何告诉 WEKA 在计算信息增益时使用缺失值?

一种可能性是用这样的常量替换缺失值:

然后排名工作:

但这并不是我真正想要的,因为我无法预测属性 3 的值。

这是我的代码:

谢谢!

0 投票
0 回答
243 浏览

weka - weka如何处理信息增益计算中的过拟合?

当我在处理过拟合属性时偶然发现一些不一致时,我只是在搞乱 WEKA 的信息增益属性评估器。在我的关系中,我使用 3 个数字属性和一个在失败和正确数据集之间划分的类属性。该类属性仅依赖于 attr3,而其他两个属性仅具有随机值。这是 ARFF 文件:

在我使用默认设置执行 Information Gain Attribute Evaluator 后,这是输出排名:

现在,属性 3 正确地具有 0.971 的信息增益,它等于关系的熵。用信息增益评估其他两个属性实际上没有意义,因为它们包含高度互信息。但我不明白的是,为什么一个过拟合属性具有最大的信息增益,而另一个具有最小的信息增益。信息增益属性评估器如何处理这些过拟合属性?