到目前为止,在 causalnex 包中,我只遇到过由数据构建的贝叶斯网络。我想知道如何使用我的节点参数和专业知识的 CPD 创建自己的网络。有人对它有一些参考或示例吗?
问问题
103 次
1 回答
1
看起来causalnex不直接支持手动设置 CPD,但您可以查看底层代码并看到它使用pgmpy BayesianModel 同时表示 causalnex BayesianNetwork 中的结构和CPD。
这样,您可以通过add_cpds添加您知道的 CPD,而不是拟合它们。要获取BayesianModel
对象,它将是:bn._model
,bn
您的causalnex.BayesianNetwork
对象在哪里。
我不确定这是否会让您只想使用pgmpy而不是causalnex!似乎 causalnex 的最大好处是它使用了NOTEARS算法,它可以帮助您为有向图构建加权邻接矩阵。再说一次,它还为您协调一些绘图。
此外,文档中的一个重要说明提醒您它并不是真正连续的,而是离散化/分箱的:
CausalNex 中的贝叶斯网络仅支持离散分布。任何连续特征或具有大量类别的特征都应在拟合贝叶斯网络之前进行离散化。包含具有许多可能值的变量的模型通常拟合度差,并且表现不佳。
于 2021-03-03T16:07:07.637 回答