如何从 pgmpy 打印打印完整的 cpd?

use*_*746 4 python pgmpy google-colaboratory

我试图让贝叶斯网络的保险数据表示中的示例发挥作用。请参阅最大似然估计部分。我从 R 中的 bnlearn 包中获取数据,然后将其上传到我的谷歌驱动器。数据

下图显示...我相信这显示了缺失的列。如何修复代码以显示正确的信息?

在此输入图像描述

from pgmpy.models import BayesianModel

model = BayesianModel([('Antilock', 'Accident'), ('DrivingSkill', 'DrivQuality'), ('DrivQuality', 'Accident')])

# Maximum Likelihood Estimation
from pgmpy.estimators import MaximumLikelihoodEstimator 
mle = MaximumLikelihoodEstimator(model, df)

# Pour toutes les variables :
model.fit(df, estimator=MaximumLikelihoodEstimator)
for cpd in model.get_cpds():
  print(cpd)

Run Code Online (Sandbox Code Playgroud)

注1:从R获取数据的代码

data(insurance)

write.csv(insurance,"C:/Users/Administrator/OneDrive/University of London/AI/Assignment 1/insurance.csv")

Run Code Online (Sandbox Code Playgroud)

注意2:如果您在 colab 中运行它,您将需要安装该软件包

!pip install pgmpy
Run Code Online (Sandbox Code Playgroud)

Jun*_*Lee 5

  1. 打开文件“pgmpy/factors/discrete/CPD.py”

  1. 在类“TabularCPD(DiscreteFactor)”中,

    细化“cdf_str = self._truncate_strtable(cdf_str)”行

    (这一行位于“def _make_table_str (~)”中)


  1. cdf_str = self._truncate_strtable(cdf_str)

    通过添加“#”使该行停用 --> # cdf_str = self._truncate_strtable(cdf_str)

  • 如果他们提供将 CPD 作为 Pandas DataFrame 获取的选项,我会很高兴。打印检查会容易得多! (2认同)