问题标签 [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.
r - bnlearn 中贝叶斯网络的 Laplace Smoothig
我正在尝试使用 R 与贝叶斯网络合作,目前我正在使用bnlearn
框架。我正在尝试从数据中使用基于分数的结构学习,并尝试不同的算法和方法。
我想知道是否实施了拉普拉斯平滑bnlearn
。我在文档中找不到任何有关它的信息。我错过了什么吗?有人知道吗?
r - hill.climbing 中的错误:INTEGER() 只能应用于“整数”,而不是“NULL”
hc()
我正在尝试在 bnlearn 包中使用爬山功能。尽管我的数据框的所有列都是因子并且没有 NA 值,但我仍然不断收到这样的错误消息:
以下是我的hc功能代码。
什么可能导致这个问题?谢谢!
r - R:变量在节点和数据中具有不同的级别数
我想使用bnlearn
朴素贝叶斯算法进行分类任务。
我使用这个数据集进行测试。其中 3 个变量是连续的 ()V2、V4、V10),其他变量是离散的。据我所知bnlearn
,不能使用连续变量,因此需要将它们转换为因子或离散化。现在我想将所有特征转换为因子。但是,我遇到了一些问题。这是一个示例代码
对于此代码,我在调用时收到错误消息predict()
'V1' 在节点和数据中具有不同数量的级别。
当我从训练集中删除那个 V1 时,我得到 V2 变量的相同错误。但是,当我进行分解时,错误就会消失dataSet [] <- lapply(dataSet, as.factor)
,只是将其拆分为训练集和测试集。
那么哪个是优雅的解决方案呢?因为在现实世界的应用程序中,测试和训练集可以来自不同的来源。有任何想法吗?
r - R中的bnlearn - 节点概率的一些条件概率分布总和不为1
我正在尝试重现我之前在 GeNie 中创建的网络,但我收到一个错误,即节点概率的某些条件概率分布的总和不等于 1。
我认为问题是节点场景?如果我没看错,我其他的cpt都很好。
我如何为具有 3 个状态的节点编码相等概率?
r - 无法运行有关“创建自定义拟合贝叶斯网络”的官方 bnlearn 教程
我在这里看官方教程。我完全复制了他们的代码,但 RStudio 给了我关于行, , B = GOOD
(错误消息:)unexpected ',' in ","
和dfit
(错误消息:)的错误消息object dfit not found
。这是我复制的确切代码:
有谁知道这里发生了什么?我做错了什么?
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,也用于完整数据?为什么会有很大的差异?
谢谢你的帮助!
r - R 掩码冲突:包 bnlearn 和 sna
我在并行使用 R 包bnlearn
和sna
. 下面的例子很简单:
输出如预期:
加载sna
包后,我会收到完全不同的东西:
我得到:
因为我并没有真正调用任何函数(只是想获得 的输出a
),所以我认为使用::
运算符没有帮助。
我想知道问题是否是掩盖了我无法真正影响的内部功能。任何帮助都会很棒!
bayesian-networks - 使用 .sav 数据库时出现 Bnlearn 错误
我对贝叶斯网络和 bnlearn 很满意。我提前道歉。
我正在研究我的博士生导师提供的数据库。当我从 spss 导出它时,我得到的网络与从 csv 导出的网络不同。这是平常的吗?这是相同的数据...不同之处在于通过spss将其从.sav转换为.csv的中间步骤...
主要问题是,当我使用 .sav 导出的数据时,不知何故我不断收到此错误消息,指出我的变量不是离散的(它们已被重新编码为分类变量,所以我不知道这是从哪里来的)。因此,它们不能在 samIam 中使用。
这是错误:“write.net(rehosp.hc.fit, file = "rehosp.hc.learned.net") 中的错误:只能将离散贝叶斯网络导出为 DSC 格式。”
代码如下:
可以使用一些指导。
谢谢!
statistics - 如何使用 R 中的 bnlearn 在 Hill Climb 中计算节点的分数
我正在使用 bnlearn 包执行我的第一个任务来执行 EDA。我在 R 中使用爬山(hc)创建了一个具有所有默认值的网络。
但是贝叶斯网络中很少有节点在创建的有向无环图(DAG)中没有任何前任或后继节点。
检查 NODE 没有任何连接节点的分数或标准的方法是什么。我们该如何解释这一点。
非常感谢
r - 用于 R 中文本分析的贝叶斯网络
我有一页故事(即文本数据),我需要对该故事使用贝叶斯网络并对其进行分析。有人能告诉我在R中是否可能吗?如果是,那如何进行?
分析的目标是 - 从叙述文本中提取动作描述。
考虑分析的数据 -
克里希纳对阿朱那的 Dharam-shasthra:
吉塔是克里希纳和阿朱纳在战斗前的对话。克里希纳强调两个术语:业力和佛法。他告诉阿琼这是一场正义的战争;一场佛法之战。佛法是正义之道或制定的一套规则和法律。Kauravas 站在 Adharma 一边,违反了规则和法律,因此 Arjun 必须做他的业力来维护佛法。Arjuna不想战斗。他不明白为什么他必须为一个他甚至不一定想要的王国流血。在他眼里,杀了他的恶,杀了他的家人,是最大的罪过。他放下武器,告诉克里希纳他不会战斗。然后,克里希纳开始了系统的过程来解释为什么它是阿朱那'
克里希纳首先解释了生死轮回。他说没有真正的灵魂死亡,只是在每一轮生死结束时身体的蜕皮。这个循环的目的是让一个人摆脱他们的业力,这些业力是通过一生的行动积累起来的。如果一个人无私地完成了为上帝服务的行为,那么他们就可以消除他们的业力,最终导致灵魂的溶解,获得启蒙和智慧,并结束轮回。如果他们的行为自私,那么他们就会不断积累债务,使他们越来越深地陷入业债。
在预处理中应遵循的步骤是:
- 句法处理(post tagger)
- SRL算法(故事人物的语义角色标注)
- 会议决议
使用以上所有内容,我需要创建一个知识数据库并创建一个贝叶斯网络。
到目前为止,这是我尝试获取帖子标记器的方法: