首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从pgmpy打印完整的cpd?

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

Stack Overflow用户
提问于 2022-01-07 18:13:51
回答 2查看 606关注 0票数 2

我正在努力让基于贝叶斯网络的保险数据表示中的示例开始工作。参见最大似然估计一节。我从R中的bnlearn软件包获得的数据,然后上传到我的谷歌驱动器。数据

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

代码语言:javascript
复制
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)

Note1:从R获取数据的代码

代码语言:javascript
复制
data(insurance)

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

Note2:如果您正在colab中运行此程序,则需要安装该软件包

代码语言:javascript
复制
!pip install pgmpy
EN

回答 2

Stack Overflow用户

发布于 2022-06-21 07:14:30

  1. 打开文件“pgmpy/factor/离散/CPD.py”
  2. 在课堂上"TabularCPD(DiscreteFactor)", 细化"cdf_str = self._truncate_strtable(cdf_str)“一行 (这一行在"def _make_table_str (~)“中)
  3. cdf_str = self._truncate_strtable(cdf_str) 通过添加"#“-># cdf_str = self._truncate_strtable(cdf_str)使这一行停用
票数 4
EN

Stack Overflow用户

发布于 2022-11-07 17:45:10

一种较小的荣阿丽的答案侵袭性变异

代码语言:javascript
复制
from pgmpy.factors.discrete.CPD import TabularCPD

def print_full(cpd):
    backup = TabularCPD._truncate_strtable
    TabularCPD._truncate_strtable = lambda self, x: x
    print(cpd)
    TabularCPD._truncate_strtable = backup

print_full(cpd)函数重新分配TabularCPD._truncate_strtable以返回其输入,打印非截断的CPD表字符串,并将TabularCPD._truncate_strtable重置为原始函数。

在for循环中将print(cpd)调用替换为print_full(cpd)将打印完整的CPD。

我想也有可能处理终端大小,因为_truncate_strtable使用了shutil.get_terminal_size函数。在这方面可能有帮助的帖子:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70625490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档