如何解决在 causalnex 中构建基于专业知识的贝叶斯网络
到目前为止,在 causalnex 包中,我只遇到了从 数据。我想知道如何根据专业知识使用我的节点参数和 CPD 创建我自己的网络。有人参考过它或举个例子吗?
解决方法
看起来causalnex 不直接支持手动设置CPD,但是您可以查看底层代码并看到它使用pgmpy BayesianModel 同时表示因果关系贝叶斯网络中的结构和CPD。
这样,您就可以通过 add_cpds 添加您知道的 CPD 而不是拟合它们。要获取 BayesianModel
对象,它将是:bn._model
,其中 bn
是您的 causalnex.BayesianNetwork
对象。
我不确定这是否会让您只想使用 pgmpy 而不是 causalnex ! causalnex 的最大好处似乎是它使用了 NOTEARS 算法,该算法可帮助您为有向图构建加权邻接矩阵。再说一次,它还为您协调一些绘图。
另外,docs 中的一个重要说明提醒您它不是真正连续的,而是离散/分箱的:
CausalNex 中的贝叶斯网络仅支持离散分布。 任何连续特征,或具有大量 类别,应该在拟合贝叶斯之前离散 网络。包含具有许多可能值的变量的模型将 通常不适合,表现不佳。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。