我使用bnlearn:hc使用以下步骤构建了一个图形:
因此,如果我尝试使用1 bn进行自举,为了在小测试中更快,有时我会有一些无向弧。
在bnlearn中我怎么知道来自bn对象(学习结构)的无向弧是什么并将其删除?这将是最好的解决方案吗?
韩国社交协会
答案 0 :(得分:0)
要查看哪些弧是无向的,您可以绘制网络。使用plot(network)
或者,如果您拥有Rgraphviz
包,则可以使用graphviz.plot(network)
。
答案 1 :(得分:0)
当有许多节点时,很难在图表中挑选出无向弧。在这种情况下,您可以使用undirected.arcs()来查找它们。
用法如下:
boot = boot.strength(data = df, R=500, algorithm = 'hc',
algorithm.args = list(score = 'bde'))
boot.avg = averaged.network(boot)
undirected.arcs(boot.avg)
您可以检查每个弧形方向的分数,以确保其不大于另一个:
score(set.arc(boot.avg, from="A", to="B", df)
score(set.arc(boot.avg, from="B", to="A", df)
最后你会想要设定这样的方向:
boot.avg = set.arc(boot.avg, from="A", to="B")
如果你想完全删除弧线,可以使用:
boot.avg = drop.arc(boot.avg, from="A", to="B")