【发布时间】:2021-02-24 14:35:35
【问题描述】:
到目前为止,在 causalnex 包中,我只遇到过由 数据。我想知道如何使用我的节点参数和专业知识的 CPD 创建自己的网络。任何人有一些参考或示例?
【问题讨论】:
标签: python bayesian-networks causality
到目前为止,在 causalnex 包中,我只遇到过由 数据。我想知道如何使用我的节点参数和专业知识的 CPD 创建自己的网络。任何人有一些参考或示例?
【问题讨论】:
标签: python bayesian-networks causality
貌似causalnex不直接支持手动设置CPD,但是你可以看下底层代码,发现它是用pgmpy BayesianModel同时表示的因果关系贝叶斯网络中的结构和 CPD。
这样,您可以通过add_cpds 添加您知道的 CPD,而不是安装它们。要获取BayesianModel 对象,它将是:bn._model,其中bn 是您的causalnex.BayesianNetwork 对象。
我不确定这是否会让您只想使用 pgmpy 而不是 causalnex ! causalnex 的一大好处似乎是它使用了NOTEARS 算法,它可以帮助您为有向图构建加权邻接矩阵。再说一次,它还为您协调一些绘图。
另外,docs 的重要说明提醒您,它真的不是连续的,而是离散化/分箱的:
CausalNex 中的贝叶斯网络仅支持离散分布。 任何连续特征,或具有大量 类别,应在拟合贝叶斯之前离散化 网络。包含具有许多可能值的变量的模型将 通常不适合,表现不佳。
【讨论】: