到目前为止,在causalnex包中,我只遇到过由数据。我想知道如何用我的节点参数和专业知识来创建我自己的网络。有人能举个例子吗?
看起来像causalnex不直接支持手动设置CPD,但是您可以查看底层代码,看到它正在使用pgmpy贝叶斯模型同时表示causalnex内的结构和CPDBayesianNetwork .
有了这个,你可以通过add_cpds添加你知道的CPD,而不是拟合它们。要得到BayesianModel
对象,它将是:bn._model
,其中bn
是您的causalnex.BayesianNetwork
对象。
我不确定这是否会让你只想使用pgmpy代替causalnex不信! !的最大好处似乎是causalnex它使用了NOTEARS算法,它可以帮助你为你的有向图建立加权邻接矩阵。然后,它还为您协调了一些绘图。
另外,文档中的一个重要提示提醒您,它并不是真正的连续的,而是离散的/binned:
CausalNex中的贝叶斯网络只支持离散分布。任何连续的特征,或具有大量的特征类,应该在拟合贝叶斯之前进行离散化网络。包含有许多可能值的变量的模型将通常不适合,表现不佳。