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)
在类“TabularCPD(DiscreteFactor)”中,
细化“cdf_str = self._truncate_strtable(cdf_str)”行
(这一行位于“def _make_table_str (~)”中)
cdf_str = self._truncate_strtable(cdf_str)
通过添加“#”使该行停用 --> # cdf_str = self._truncate_strtable(cdf_str)