首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“最大似然”和“贝叶斯”方法的bnlearn::bn.fit差异及计算

“最大似然”和“贝叶斯”方法的bnlearn::bn.fit差异及计算
EN

Stack Overflow用户
提问于 2018-08-21 17:14:59
回答 1查看 617关注 0票数 3

我尝试理解包bnlearnbn.fit函数中的两个方法bayesmle之间的区别。

我知道频率论者和贝叶斯方法之间关于理解概率的争论。在理论层面上,我认为最大似然估计mle是一种简单的频率论方法,将相对频率设置为概率。但是,如何计算才能得到bayes估计值呢?我已经检查了bnlearn documenationdescription of the bn.fit function和一些application examples,但没有真正描述发生了什么。

我也试着通过首先检查bnlearn::bn.fit来理解R中的函数,首先是bnlearn:::bn.fit.backend,然后是bnlearn:::smartSapply,但后来我被卡住了。

当我使用这个包进行学术工作时,我将非常感激一些帮助,因此我应该能够解释发生了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-25 21:12:52

bnlearn::bn.fit中的贝叶斯参数估计适用于离散变量。关键是可选的iss参数:“贝叶斯方法用来估计与离散节点相关的条件概率表(CPT)的虚构样本大小”。

因此,对于某些网络中的二进制根节点Xbnlearn::bn.fit中的bayes选项返回(Nx + iss / cptsize) / (N + iss)作为X = x的概率,其中N是样本的数量,Nx是样本的数量,cptsize是<代码>d11的CPT的大小;在本例中是<代码>d12。相关代码在bnlearn:::bn.fit.backend.discrete函数中,特别是行:tab = tab + extra.args$iss/prod(dim(tab))

因此,与N相反,iss / cptsize是CPT中每个条目的虚构观察值的数量,而N是“真实”观察值的数量。使用iss = 0,您将获得一个最大似然估计,因为您将没有事先想象的观察值。

相对于Niss越高,先验对后验参数估计的影响就越强。对于固定的iss和不断增长的N,贝叶斯估计器和最大似然估计器收敛到相同的值。

一个常见的经验法则是使用一个小的非零iss,这样您就可以避免在CPT中出现零条目,这与数据中没有观察到的组合相对应。这样的零条目可能会导致网络泛化能力很差,例如Pathfinder system的一些早期版本。

关于贝叶斯参数估计的更多细节,你可以看看Koller and Friedman写的书。我想许多其他贝叶斯网络书籍也涵盖了这个主题。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51945372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档