fullbnt使用中bnet中CPD查看方法与输入证据后节点查询方法

本文深入探讨了贝叶斯网络中参数学习与应用的关键步骤,包括使用learn_param学习样本得到网络参数后如何正确使用CPD_to_CPT进行参数展示,并通过enter_evidence输入证据后如何使用marginal_nodes查询节点概率表。详细解析了代码实现及运行结果,为读者提供了一站式的学习指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用learn_param学习样本得到网络参数后,不能直接使用bnet.CPD查看网络参数,使用bnet.CPD.CPT也是错误的写法。

      正确的使用方法是使用CPD_to_CPT将CPD转化为CPT表格的形式显示出来。

bnet = learnparam(ret{1,1},ret{1,2},ret{1,3},ret{1,4},ret{1,9});
T = bnet.CPD;
T2= CPD_to_CPT(T{1,1})
运行结果如下:
T2 =

    0.4930
    0.5070

2、使用enter_evidence输入证据后,用marginal_nodes查询节点概率表:

for i = 1:n
    marg = marginal_nodes(engine, result_nodes(1,i), 1    result_p{i,1} = marg.T;
end
disp(cell2array(result_nodes));
运行结果如下:
    0.0481    0.9519
    0.0865    0.9135
    0.5000    0.5000
    0.5000    0.5000

其中cell2array源代码如下:

function array = cell2array(cell)
[m, ~] = size(cell);
maxcol = zeros(m,1);
for i = 1:m
    maxcol(i,1) = size(cell{i,1},1);
end
n = max(maxcol);
%n = size(cell{1,1});
array = zeros(m, n);
for i = 1:m
    array(i,:) = cell2num(cell(i,1));
end
end




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值