R bnlearn包:阻止节点拥有任何父母

时间:2017-01-05 16:27:14

标签: r bayesian causality bnlearn

使用包bnlearn,是否可以将节点设置为不能拥有任何父节点?我发现使用黑名单功能在技术上是可行的。防止“A”在所包含的测试数据中包含任何父项的示例:

library(bnlearn)
blacklist = data.frame(from = c("B", "C", "D", "E", "F"), to = c("A"))
dat = gs(learning.test, blacklist = blacklist)

但是,我正在使用具有数万个节点的数据,这些节点不应该是父节点,导致黑名单长达数百万行。我基本上在寻找类似的东西:

blacklist = data.frame(from = c(“*”,“A”))

意味着没有节点可以是A的父节点。这可能吗?如果没有,是否有任何人都可以推荐具有此功能的贝叶斯学习包?

1 个答案:

答案 0 :(得分:0)

也可以使用黑名单,但更通用一些:

node.names <- names(learning.test)
blacklist <- data.frame(from = node.names[-grep("A", node.names)], 
                        to   = c("A"))