- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在包 bnlearn 的
。bn.fit
函数中理解 bayes
和 mle
这两种方法之间的区别
我知道频率论者和贝叶斯方法之间关于理解概率的争论。在理论层面上,我认为最大似然估计 mle
是一种简单的频率论方法,将相对频率设置为概率。但是要进行哪些计算才能得到 bayes
估计值?我已经 checkout bnlearn documenation , description of the bn.fit function还有一些application examples ,但没有任何地方对正在发生的事情进行真实描述。
我还尝试通过首先检查 bnlearn::bn.fit
来理解 R 中的函数,然后是 bnlearn:::bn.fit.backend
,然后是到 bnlearn:::smartSapply
但后来我卡住了。
当我将这个包用于学术工作时,我将不胜感激,因此我应该能够解释发生了什么。
最佳答案
bnlearn::bn.fit
中的贝叶斯参数估计适用于离散变量。关键是可选的 iss
参数:“贝叶斯方法用来估计与离散节点相关的条件概率表 (CPT) 的假想样本大小”。
因此,对于某些网络中的二进制根节点 X
,bnlearn::bn.fit
中的 bayes
选项返回 (Nx + iss/cptsize)/(N + iss)
作为 X = x
的概率,其中 N
是您的样本数, Nx
为X = x
的样本数,cptsize
为X
的CPT大小;在这种情况下 cptsize = 2
。相关代码在 bnlearn:::bn.fit.backend.discrete
函数中,特别是以下行:tab = tab + extra.args$iss/prod(dim(tab) )
因此,iss/cptsize
是 CPT 中每个条目的虚构观察数,而不是 N
,即“真实”观察数。使用 iss = 0
,您将获得最大似然估计,因为您没有先前的假想观察。
iss
相对于 N
越高,先验对后验参数估计的影响越强。在固定iss
和不断增长的N
的情况下,贝叶斯估计器和最大似然估计器收敛到相同的值。
一个常见的经验法则是使用一个小的非零 iss
,这样您就可以避免 CPT 中的零条目,对应于数据中未观察到的组合。这样的零条目可能会导致网络泛化能力很差,例如 Pathfinder system 的一些早期版本.
有关贝叶斯参数估计的更多详细信息,您可以查看 Koller and Friedman 的书.我想许多其他贝叶斯网络书籍也涵盖了这个主题。
关于r - bnlearn::bn.fit方法 "mle"和 "bayes"的区别和计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945372/
我在计算这个特定程序的递归时遇到了一些麻烦。我尝试了几种不同的选择,但我对递归函数是全新的。我唯一可以修改的程序部分是在函数 B 的内部。此函数计算:Bn(a) = Bn−1(a) × Bn−2(a)
今天遇到一个问题,很迷惑 问题 我有这样的数组:arr[a1, a2, a3....an, b1, b2, b3.....bn],如何移动数组的元素将它转移到arr[a1, b1, a2, b2...
假设我有这个 git 结构: * hash3 (HEAD -> origin/bN, bN) Message N | * ... | * hash2 (origin/b2, b2) Message 2
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
最近看了破解代码,在第二章介绍了runner方法解决多数链表问题。 给定一个链表 a1 a2...an b1 b2...bn 重新排列为 a1 b1 a2 b2...an bn。 它说我们应该使用两个
在 truffle 控制台中,我正在执行以下语句, result = token.balanceOf(accounts[1]) 此语句返回以下输出。 按照建议here ,我正在尝试使用 toNumb
使用 :bn 切换缓冲区时,如何将光标位置保留在一行内例如? vim 记得我的光标在哪一行,但是当我在缓冲区之间切换时总是将我的光标移动到行的开头。 最佳答案 我不知道为什么 Vim 会这样,但幸运的
我有一段我无法理解的c#代码。在 IntToBin 循环的第一次迭代中,我了解到移位运算符将其转换为字节值 7,但在第二次传递时,字节值为 224。224 是如何实现的。 static void
当我使用 truffle 开发智能合约时,每当从 truffle 控制台请求账户余额或地址等数字时;我收到一个看起来像这样的 BN 对象: BN { negative: 0, words: [
如果我用多个文件启动 vim,像这样 vim *.java , 我可以使用 :n 循环浏览打开的文件或 :bn (和其他相关命令)。 但是如果我只从一个文件开始并使用 :split 加载其他文件(稍后
我想知道在使用多 GPU 进行训练时通过同步批量统计信息来实现批量标准化层的可能方法。 咖啡 也许有一些咖啡的变体可以做到,比如 link .但是对于BN层,我的理解是它仍然只同步层的输出,而不是me
#include #include 错误:无法打开源文件“openssl/bn.h”,无法打开源文件“openssl/dh.h”???怎么了 最佳答案 确保您的系统上安装了 libssl。如果你在
如果我们要 Conv2d 后跟 ReLU 后跟 batch norm (bn )? 如果我们先是 Conv2d 然后是 bn 然后是 ReLU 就没必要了,因为 bn ReLU -> BatchNor
有一个简单的可靠契约: contract SellStuff{ address seller; string name; string description; uin
我正在尝试这样做: import { BN } from 'web3-utils' const AmountBN = new BN('1000000000000000000')
我为我的应用程序使用了 webpack 4。不知何故,bn.js 包在生产构建中占用了很多。 图像显示它占用了 594.22 KB 的数据。有没有办法为所有依赖于 bn.js 的包创建一个 bn.js
webpack-bundle-analyzer 显示我的vendor.js 中包含的 elliptic 和 bn.js但这些模块未在代码中使用或包含在 package.json 中。 npm ls b
OpenSSL 是否支持使用 BN API 在二次扩展域中进行运算(或者,复数运算)? 如果没有,是否还有其他开源库可以? 最佳答案 你可能想看看PBC .这是一个用于计算某些椭圆曲线上的配对的库,这
我是 Obj-C 的新手,正在尝试编译 Big Number 相关的 Objective C 文件 函数很简单,就是初始化一个大数然后用NSLog打印出来。 我用过 #import 但是 xcode
我试图在包 bnlearn 的 bn.fit 函数中理解 bayes 和 mle 这两种方法之间的区别。 我知道频率论者和贝叶斯方法之间关于理解概率的争论。在理论层面上,我认为最大似然估计 mle 是
我是一名优秀的程序员,十分优秀!