3

我试图了解这两种方法之间的差异bayes以及包mle的功能。bn.fitbnlearn

我知道频率论者和贝叶斯论者在理解概率方面的争论。在理论上,我认为最大似然估计mle是一种简单的频率论方法,将相对频率设置为概率。但是做了哪些计算来得到bayes估计值呢?我已经查看了bnlearn 文档bn.fit 函数的描述和一些应用示例,但没有对正在发生的事情的真实描述。

我还尝试通过首先检查bnlearn::bn.fit、导致bnlearn:::bn.fit.backend、导致来理解 R 中的函数,bnlearn:::smartSapply但后来我被卡住了。

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

4

1 回答 1

6

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

X因此,对于某个网络中的二元根节点,bayes选项bnlearn::bn.fit返回(Nx + iss / cptsize) / (N + iss)为 的概率X = x,其中N是您的样本Nx数,样本数为X = xcptsizeCPT 的大小为X;在这种情况下cptsize = 2。相关代码在bnlearn:::bn.fit.backend.discrete函数中,特别是以下行:tab = tab + extra.args$iss/prod(dim(tab))

因此,iss / cptsize是 CPT 中每个条目的虚构观察数,而不是N“真实”观察数。有了iss = 0您,您将获得最大似然估计,因为您没有事先想象的观察结果。

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

一个常见的经验法则是使用一个小的非零iss,以避免在 CPT 中出现零条目,对应于数据中未观察到的组合。这样的零条目可能会导致泛化较差的网络,例如探路者系统的一些早期版本。

有关贝叶斯参数估计的更多详细信息,您可以查看Koller 和 Friedman的书。我想许多其他贝叶斯网络书籍也涵盖了这个主题。

于 2018-08-25T13:12:51.587 回答