bnmsgpassupdate.m

来自「关于医学诊断系统matlab实现 v 关于医学诊断系统matlab实现」· M 代码 · 共 34 行

M
34
字号
function [nodes, edges, A, ahat] = bnMsgPassNetUpdate(nodes, edges, A, ahat, V, vhat)
% BNMSGPASSUPDATE helper function for lungbayesdemo

% Reference: Neapolitan R., "Learning Bayesian Networks", Pearson Prentice Hall,
% Upper Saddle River, New Jersey, 2004.


A = union(A, V);
ahat = union(ahat, vhat);

for v = 1:length(nodes(V).values) % for each node value
    if v ~= vhat
        nodes(V).lambda(v) = 0;
        nodes(V).peye(v) = 0;
        nodes(V).P(v) = 0;
    else
        nodes(V).lambda(vhat) = 1;
        nodes(V).peye(vhat) = 1;
        nodes(V).P(vhat) = 1;
    end
end

Z = nodes(V).parents;
Z = setdiff(Z,A);
for pa = 1:length(Z)
    [nodes, edges] = bnMsgPassSendLambdaMsg(V, Z(pa), nodes, edges, A);
end

childrenV = nodes(V).children;

for cv = 1:length(childrenV)
    [nodes, edges] = bnMsgPassSendPiMsg(V,childrenV(cv), nodes, edges, A);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?