问题标签 [bnlearn]

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 投票
1 回答
638 浏览

r - bnlearn::bn.fit 方法“mle”和“bayes”的差异和计算

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

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

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

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

0 投票
1 回答
44 浏览

r - 当变量的顺序改变时,因果图发生变化

我正在使用bnlearnpcalgR 包从数据集中获取因果关系图。有一种声称与变量无关的顺序无关算法作为输入给出。当我改变变量的顺序时,箭头的方向正在改变。下面是我正在使用的代码:

上面的代码给了我以下输出:

在此处输入图像描述

现在我用不同的数据顺序运行相同的代码。

在此处输入图像描述

正如人们所看到的那样,箭头已经改变了 v6 和 v7 的方向。我在这里错过了什么吗?注意:我知道骨架没有改变(没有箭头的图表)。

0 投票
1 回答
159 浏览

r - bnlearn,爬山算法:如何按分数顺序获得替代结构?

在“bnlearn”的 R 包中,函数“hc”仅导出分数中最合理的结构(例如,bic、aic)。但是,我想按合理性(即得分)的顺序了解替代结构。例如,当给定三个节点(A、B、C)时,“hc”表示最佳结构是“A->B<-C”。那么,我能知道第二好的结构吗?我知道通过使用“set.arc”,我可以计算替代结构的分数。但是,我仍然不知道替代结构的排名。我怎样才能知道分数顺序的替代结构?

提前致谢!!!

0 投票
1 回答
517 浏览

r - bnlearn 如何计算连续数据的 BIC?

我正在使用bnlearnR,我想知道包如何计算 BIC-g(高斯分布中的 BIC)。

让我们做一个结构,我可以找到BIC分数如下

bnlearn为我提供有关如何计算此分数的更详细信息,

这导致

我知道如何计算贝叶斯网络中离散数据的 BIC,请参阅此处。但我不知道它如何推广到联合高斯(多元正态)情况。

当然,它可能与近似似然性和惩罚项有关,并且似乎包过程计算每个节点的似然性和惩罚,然后将它们相加。

但我想知道如何根据数据具体计算可能性和惩罚。

我找到了解释(参见第 57 页)的材料Laplace Approximation,但我无法将其联系起来。

有人帮我吗?

0 投票
1 回答
1361 浏览

r - BNlearn R错误“变量Variable1必须至少有两个级别。”

尝试使用 BNlearn 创建 BN,但我不断收到错误消息;

它给了我每个变量的错误,即使它们都是因素并且有超过 1 个级别,如您所见 - 在这种情况下,我的变量“模型”有 4 个级别

由于我无法共享变量和数据集,因此我为数据集创建了一个小集合和所属代码。我遇到同样的问题。我知道我只共享了 2 个变量,但所有变量都出现相同的错误。

使用str(data),我可以看到该变量已经有 2 个或更多级别:

字符串(数据)

数据集链接:https ://drive.google.com/open?id=1VX2xkPdeHKdyYqEsD0FSm1BLu1UCtOj9eVIVfA_KJ3g

0 投票
1 回答
259 浏览

r - R中的并行或雪包可以与火花簇接口吗?

我正在处理 R 中的一个计算密集型包。这个包没有与 Spark 集群接口的替代实现;但是,它确实有一个可选参数来接收使用并行包创建的集群。我的问题是我可以使用 SparklyR 之类的东西连接到火花集群,然后使用该火花集群作为 makeCluster 命令的一部分传递到我的函数中吗?

我已经成功地让集群与并行工作,但我不知道如何或是否可以利用 spark 集群。

我的问题是我可以按如下方式连接到火花簇:

然后利用 makeCluster() 函数中的连接(sc 对象)?

0 投票
1 回答
99 浏览

r - 如何并行化贝叶斯网络结构学习

如何并行化hc包中的算法bnlearn?例如,如何更新以下代码

我的电脑有 8 个核心,当我运行时 hc只使用一个 CPU。我怎样才能在所有 8 Core 上运行?

0 投票
0 回答
331 浏览

r - bnlearn 的 cpquery 函数对于简单的离散人工数据总是返回 0

我想根据我创建的一些二进制数据计算基于贝叶斯网络的条件概率。但是,使用bnlearn::cpquery,总是返回 0 值,同时bnlearn::bn.fit适合正确的模型。

'cpquery' 只返回 0。我也尝试过使用该predict函数,但是这会返回一个错误:

在上面cpquery的预期结果是 0.75,但返回 0。这并不特定于该事件或证据,无论我放入什么事件或证据(例如event = (X2==1), evidence = (X1==0)event = (X2==1), evidence = (X1==0 & Y==1)),该函数都返回 0。

我尝试过的一件事,因为我认为少量的观察可能是一个问题,就是增加观察的数量(即将上述数据框与自身垂直连接很多次),但这并没有改变输出。

我已经看到很多线程cpquery并且它可能很脆弱,但没有一个表明这个问题。注意:“cpquery”文档中的示例按预期工作,因此问题似乎不是由于我的环境造成的。

任何帮助将不胜感激!

0 投票
1 回答
162 浏览

r - BNLearn:如何将高斯贝叶斯网络的估计参数与其条件结构合并?

我使用该函数定义了高斯贝叶斯网络的结构,iamb然后使用 估计了节点的系数bn.fit


图书馆

数据

代码


问题是这est.para是一个列表而不是可以绘制的 GBN 等。 我想知道如何合并网络和估计的参数?

0 投票
1 回答
78 浏览

bayesian-networks - 给定使用 BNlearn 构建的贝叶斯网络,记录属于同一数据集的概率

我正在尝试确定新记录属于现有数据集的概率。我正在使用 BNlearn R 包来构建一个使用大型训练集的贝叶斯网络。

然后我想评估新记录的异常程度。为此,我想获得一个我有充分证据但不需要预测任何变量的记录的概率。

pcquery 方法似乎需要至少一个变量来预测。文档指出 predict 方法将忽略具有完整证据的条目。

我花了一天时间搜索 BNlearn 文档,但没有成功。因此,我认为 BNlearn 要么不可能,要么我缺少正确的词汇来在文档中找到我需要的内容。

欢迎有更多BNlearn经验的人提供任何见解。