R bnlearn Grow-Shrink 结构学习返回无向图

标签 r

Nagarajan 等人。书(R 中的贝叶斯网络,O'Reilly 2013,第 35 页)说,当我使用 R bnlearn 包的标记数据集并要求通过编写使用增长-收缩实现来学习结构时

library(bnlearn)
data(marks)
bn.gs = gs(marks)

那么我应该获得一个有向图:
model: [STAT][ANL|STAT][ALG|ANL:STAT][VECT|ALG] [MECH|VECT:ALG]
nodes: 5
arcs: 6
undirected arcs: 0
directed arcs: 6

取而代之的是,我得到了一个无向图:
model: [undirected graph]
nodes: 5 
arcs: 6 
undirected arcs: 6 
directed arcs: 0 

即使我在 gs 方法中添加了 undirected=FALSE 选项,我仍然得到相同的结果。
我究竟做错了什么?还是 R 实现中存在错误?我在 Mac 和 Debian 机器上都试过了,结果是一样的......

最佳答案

作者在他们的网站(我刚刚发现)上提供了答案:http://www.bnlearn.com/book-useR/

“第 35 页:bnlearn 3.2 及更高版本对设置弧线方向更加挑剔;因此 bn.gs 是一个无向图,必须使用 cextend() 扩展到 DAG 才能结束示例。”

换句话说,将最后一行代码替换为

bn.gs = cextend(gs(marks))

遗憾的是 Springer 没有提供勘误的标准服务,例如 O'Reilly。这本书的作者不得不创建自己的网站,我花了一些时间才找到它……

关于R bnlearn Grow-Shrink 结构学习返回无向图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591220/

相关文章:

r - 为什么直接调用 mget() 与在另一个函数中调用 mget() 时,data.table j 有不同的环境?

r - 是否可以创建插图?

r - 无法在 automl() 用例中加载未获胜的模型

r - 过滤器在 dplyr 中无法正常工作(找不到对象)

r - 如何在R中将一个分组变量分成两个带有字符串值的变量?

r - ggplot 扩展图例颜色条

r - 使用 Levenshtein 距离进行文本聚类

r - 为什么在尝试对自相关建模时会出现错误,即使完全遵循 Pinheiro 和 Bates (2009) 中的这个示例?

python - R 的 `filter` 的 NumPy 模拟

r - R 中 GMM 包安装失败