Nagarajan 等人。书 (R 中的贝叶斯网络,奥莱利 2013 年,第 14 页。 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
即使我将选项 undirected=FALSE 添加到 gs 方法中,我仍然得到相同的结果。
我究竟做错了什么?或者 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 那样提供标准的勘误服务。这本书的作者必须创建自己的网站,我花了一些时间才找到它......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)