问题标签 [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 回答
166 浏览

r - bnlearn 中贝叶斯网络的 Laplace Smoothig

我正在尝试使用 R 与贝叶斯网络合作,目前我正在使用bnlearn框架。我正在尝试从数据中使用基于分数的结构学习,并尝试不同的算法和方法。

我想知道是否实施了拉普拉斯平滑bnlearn。我在文档中找不到任何有关它的信息。我错过了什么吗?有人知道吗?

0 投票
0 回答
662 浏览

r - hill.climbing 中的错误:INTEGER() 只能应用于“整数”,而不是“NULL”

hc()我正在尝试在 bnlearn 包中使用爬山功能。尽管我的数据框的所有列都是因子并且没有 NA 值,但我仍然不断收到这样的错误消息:

以下是我的hc功能代码。

什么可能导致这个问题?谢谢!

0 投票
1 回答
269 浏览

r - R:变量在节点和数据中具有不同的级别数

我想使用bnlearn朴素贝叶斯算法进行分类任务。

我使用这个数据集进行测试。其中 3 个变量是连续的 ()V2、V4、V10),其他变量是离散的。据我所知bnlearn,不能使用连续变量,因此需要将它们转换为因子或离散化。现在我想将所有特征转换为因子。但是,我遇到了一些问题。这是一个示例代码

对于此代码,我在调用时收到错误消息predict()

'V1' 在节点和数据中具有不同数量的级别。

当我从训练集中删除那个 V1 时,我得到 V2 变量的相同错误。但是,当我进行分解时,错误就会消失dataSet [] <- lapply(dataSet, as.factor),只是将其拆分为训练集和测试集。

那么哪个是优雅的解决方案呢?因为在现实世界的应用程序中,测试和训练集可以来自不同的来源。有任何想法吗?

0 投票
0 回答
296 浏览

r - R中的bnlearn - 节点概率的一些条件概率分布总和不为1

我正在尝试重现我之前在 GeNie 中创建的网络,但我收到一个错误,即节点概率的某些条件概率分布的总和不等于 1。

我认为问题是节点场景?如果我没看错,我其他的cpt都很好。

我如何为具有 3 个状态的节点编码相等概率?

0 投票
1 回答
130 浏览

r - 无法运行有关“创建自定义拟合贝叶斯网络”的官方 bnlearn 教程

我在这里看官方教程。我完全复制了他们的代码,但 RStudio 给了我关于行, , B = GOOD(错误消息:)unexpected ',' in ","dfit(错误消息:)的错误消息object dfit not found。这是我复制的确切代码:

有谁知道这里发生了什么?我做错了什么?

0 投票
1 回答
682 浏览

r - R包bnlearn:cpquery vs predict - 不同的结果?

我想使用我的贝叶斯网络作为分类器,首先是完整的证据数据(predict),还有不完整的数据(bnlearn::cpquery)。但似乎,即使使用相同的证据,这些函数也会给出不同的结果(不仅仅是基于采样引起的轻微偏差)。

有了完整的数据,可以很容易地使用 R 的predict功能:

通过分析prob属性,我了解到predict-function 只是选择分配概率最高的因子级别。

当涉及不完整的证据(仅知道某些节点的结果)时,predict不再起作用:

因此,我想使用bnlearn::cpquery已知证据列表:

同样,我只是想使用概率最高的因素作为预测。因此,如果结果cpquery高于 0.5,我将预测设置为 TRUE,否则设置为 FALSE。

我试图通过向两个函数提供相同(完整)的数据来监控该过程,但它们并没有给我相同的结果。有很大的差异,例如predict,“概率”属性给我 ap(false) = 27%,而cpquery给我 p(false) = 2,2%。

这样做的“正确”方式是什么?仅使用 cpquery,也用于完整数据?为什么会有很大的差异?

谢谢你的帮助!

0 投票
1 回答
114 浏览

r - R 掩码冲突:包 bnlearn 和 sna

我在并行使用 R 包bnlearnsna. 下面的例子很简单:

输出如预期:

加载sna包后,我会收到完全不同的东西:

我得到:

因为我并没有真正调用任何函数(只是想获得 的输出a),所以我认为使用::运算符没有帮助。

我想知道问题是否是掩盖了我无法真正影响的内部功能。任何帮助都会很棒!

0 投票
0 回答
92 浏览

bayesian-networks - 使用 .sav 数据库时出现 Bnlearn 错误

我对贝叶斯网络和 bnlearn 很满意。我提前道歉。

我正在研究我的博士生导师提供的数据库。当我从 spss 导出它时,我得到的网络与从 csv 导出的网络不同。这是平常的吗?这是相同的数据...不同之处在于通过spss将其从.sav转换为.csv的中间步骤...

主要问题是,当我使用 .sav 导出的数据时,不知何故我不断收到此错误消息,指出我的变量不是离散的(它们已被重新编码为分类变量,所以我不知道这是从哪里来的)。因此,它们不能在 samIam 中使用。

这是错误:“write.net(rehosp.hc.fit, file = "rehosp.hc.learned.net") 中的错误:只能将离散贝叶斯网络导出为 DSC 格式。”

代码如下:

可以使用一些指导。

谢谢!

0 投票
0 回答
126 浏览

statistics - 如何使用 R 中的 bnlearn 在 Hill Climb 中计算节点的分数

我正在使用 bnlearn 包执行我的第一个任务来执行 EDA。我在 R 中使用爬山(hc)创建了一个具有所有默认值的网络。

但是贝叶斯网络中很少有节点在创建的有向无环图(DAG)中没有任何前任或后继节点。

检查 NODE 没有任何连接节点的分数或标准的方法是什么。我们该如何解释这一点。

非常感谢

0 投票
0 回答
169 浏览

r - 用于 R 中文本分析的贝叶斯网络

我有一页故事(即文本数据),我需要对该故事使用贝叶斯网络并对其进行分析。有人能告诉我在R中是否可能吗?如果是,那如何进行?

分析的目标是 - 从叙述文本中提取动作描述。
考虑分析的数据 -

克里希纳对阿朱那的 Dharam-shasthra:

吉塔是克里希纳和阿朱纳在战斗前的对话。克里希纳强调两个术语:业力和佛法。他告诉阿琼这是一场正义的战争;一场佛法之战。佛法是正义之道或制定的一套规则和法律。Kauravas 站在 Adharma 一边,违反了规则和法律,因此 Arjun 必须做他的业力来维护佛法。Arjuna不想战斗。他不明白为什么他必须为一个他甚至不一定想要的王国流血。在他眼里,杀了他的恶,杀了他的家人,是最大的罪过。他放下武器,告诉克里希纳他不会战斗。然后,克里希纳开始了系统的过程来解释为什么它是阿朱那'

克里希纳首先解释了生死轮回。他说没有真正的灵魂死亡,只是在每一轮生死结束时身体的蜕皮。这个循环的目的是让一个人摆脱他们的业力,这些业力是通过一生的行动积累起来的。如果一个人无私地完成了为上帝服务的行为,那么他们就可以消除他们的业力,最终导致灵魂的溶解,获得启蒙和智慧,并结束轮回。如果他们的行为自私,那么他们就会不断积累债务,使他们越来越深地陷入业债。

在预处理中应遵循的步骤是:

  1. 句法处理(post tagger)
  2. SRL算法(故事人物的语义角色标注)
  3. 会议决议

使用以上所有内容,我需要创建一个知识数据库并创建一个贝叶斯网络。

到目前为止,这是我尝试获取帖子标记器的方法: