问题标签 [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.
c++ - opencv中灰度图像的熵
我需要代码来查找图像的熵。
实际上,我正在使用它来转储可编程相机来测量熵。现在我想在windows系统中使用它。我将灰色图像的熵设为零。请帮帮我。我哪里做错了。
memory - 为什么不同的数据类型为相同的数据占用更多的内存?
例如,如果我想存储数字 1,我可以使用integer type
占用32 位的 a 或long type
占用64 位的 a ,但是两种数据类型的信息量(从符号的角度来看)是相同的.
r - model.avg 返回错误 dim(x) 必须具有正长度。代码以前可以工作,但是我更改了一个参数的值并且它已损坏
我正在尝试将一个新参数插入到我已经使用了几个月(没有问题)的一些模型平均代码中,现在我收到了一条我以前从未见过的错误消息。
我的代码如下
最后一行是我收到以下错误消息的地方
这段代码之前运行良好,我所做的只是更改 predictor6 的值。数据中没有 NA 值,class(predictor6) 为两个数据集返回数字,并且 predictor6 的最大最小值仍在它们之前的范围内。
我的代码是相同的。这个错误是什么意思,我为什么会得到它,我该如何修复它?
任何帮助都将不胜感激。提前非常感谢。
=========================
编辑:建议我运行traceback()
以查看哪个调用函数引发了错误。我以前从未使用过这个函数,但这是我运行它时返回的内容:
encoding - 字母表的明确二进制编码方案
一个古老的英国信息学奥林匹克问题(3c)询问字母表的最小明确编码方案(仅使用两个符号 - 因此是二进制)是什么。据我所知,答案是 130 - 存储每个字母需要 5 位,因为 2^4 < 26。字母表有 26 个字符,因此编码方案是 5*26 位长。但是,标记方案声明可以使用 124 位。这么长的编码方案是什么?
unix - 发送信号是否发送了一位信息?
对在 UNIX 系统中实现的传统信号发送工具的描述有时将“发送信号”的动作与“发送一点信息”区别开来。这个鉴定准确吗?
这种描述的例子
UNIX 环境中的高级编程(W. Richard Stevens,Stephen A. Rago)提供了这种描述的一个示例,其中sigqueue
函数的描述 ( 10.20 ) 声称“通常信号携带一位信息:信号本身。”</p>
为什么一个信号实际上携带 0 位信息
信号没有状态,所以它的状态用 0 位信息来描述。携带信息的只是实际发生的传输。
发送 2 位信息与连续发送 2 次 1 位信息相同,所以如果一个信号要传达 1 位信息,我们可以通过发送 2 次向进程发送 2 位信息(相同)信号,这看起来是不可能的。
r - R中互信息的计算
我在解释熵包中的mi.plugin()
(or ) 函数的结果时遇到问题。mi.empirical()
据我了解, MI=0 告诉您要比较的两个变量是完全独立的;并且随着 MI 的增加,这两个变量之间的关联越来越非随机。
那么,为什么在 R 中运行以下命令(使用{entropy}
包)时,我得到的值为 0:
mi.plugin( rbind( c(1, 2, 3), c(1, 2, 3) ) )
当我比较两个完全相同的向量时?
我认为我的困惑是基于我的理论误解,有人可以告诉我哪里出错了吗?
提前致谢。
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 方法会削弱系统的强度吗?
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
;
java - 如何处理信息增益属性评估中的缺失属性值
我正在尝试使用 weka 提供的信息增益库来评估选择的属性,但是如果决定如何对实例进行分类的属性并不总是提供值,则它不起作用。很难解释,所以举个例子:
这是我的关系。它由 3 个数字属性和一个类属性组成。如果属性 3 取值 5000,则分类设置为失败。
执行 Information Gain Attribute Evaluator 后,输出如下:
现在,属性 3 应该是最高排名,因为它的值决定了实例被归类为失败还是正确。但不知何故,情况并非如此。
所以,我的问题是:如何告诉 WEKA 在计算信息增益时使用缺失值?
一种可能性是用这样的常量替换缺失值:
然后排名工作:
但这并不是我真正想要的,因为我无法预测属性 3 的值。
这是我的代码:
谢谢!
weka - weka如何处理信息增益计算中的过拟合?
当我在处理过拟合属性时偶然发现一些不一致时,我只是在搞乱 WEKA 的信息增益属性评估器。在我的关系中,我使用 3 个数字属性和一个在失败和正确数据集之间划分的类属性。该类属性仅依赖于 attr3,而其他两个属性仅具有随机值。这是 ARFF 文件:
在我使用默认设置执行 Information Gain Attribute Evaluator 后,这是输出排名:
现在,属性 3 正确地具有 0.971 的信息增益,它等于关系的熵。用信息增益评估其他两个属性实际上没有意义,因为它们包含高度互信息。但我不明白的是,为什么一个过拟合属性具有最大的信息增益,而另一个具有最小的信息增益。信息增益属性评估器如何处理这些过拟合属性?