bnlearn中约束型结构学习算法未遵守黑名单问题排查
约束型贝叶斯网络结构学习中bnlearn黑名单失效问题
环境信息
- R版本:4.3.3
- bnlearn版本:4.9.3
黑名单定义
bl = matrix(c("A", "B", "A", "C", "B", "C"), ncol = 2, byrow = TRUE) blReverse = matrix(c("B", "A", "C", "A", "C", "B"), ncol = 2, byrow = TRUE)
结构学习与绘图代码
par(mfrow = c(1, 3)) # 无黑名单 graphviz.plot(gs(df), main = "No BL") # 黑名单 graphviz.plot(gs(df, blacklist = bl), main = "BL") # 反向黑名单 graphviz.plot(gs(df, blacklist = blReverse), main = "Reverse BL")
问题现象
- 使用
bl黑名单时,仍出现A→B、A→C等已被列入黑名单的弧; - 使用
blReverse反向黑名单时,仍出现C→A、C→B等受限弧。
疑问
根据bnlearn官方文档,黑名单应可限制单方向弧,允许算法在数据支持时添加反向弧,但实际结果与预期不符。请问是黑名单使用方式有误、算法存在bug,还是我对黑名单功能理解有误?
内容的提问来源于stack exchange,提问作者Cata
相关产品推荐
相关产品推荐

