⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pearl_dbn_inf_engine.m

📁 贝叶斯算法(matlab编写) 安装,添加目录 /home/ai2/murphyk/matlab/FullBNT
💻 M
字号:
function engine = pearl_dbn_inf_engine(bnet, varargin)% LOOPY_DBN_INF_ENGINE Loopy Pearl version of forwards-backwards% engine = loopy_dbn_inf_engine(bnet, ...)%% Optional arguments% 'max_iter' - specifies the max num. forward-backward passes to perform [1]% 'tol' - as in loopy_pearl [1e-3]% 'momentum' - as in loopy_pearl [0]error('pearl_dbn does not work yet')max_iter = 1;tol = 1e-3;momentum = 0;if nargin >= 2  args = varargin;  nargs = length(args);  for i=1:2:nargs    switch args{i},     case 'max_iter', max_iter = args{i+1};     case 'tol', tol = args{i+1};     case 'momentum', momentum = args{i+1};    end  endend          engine.max_iter = max_iter;engine.tol = tol;engine.momentum = momentum;engine.pearl_engine = [];engine.T = [];engine.ss = length(bnet.intra);engine.marginal = [];engine.evidence = [];engine.msg = [];engine.parent_index = [];engine.child_index = [];%[engine.parent_index, engine.child_index] = mk_pearl_msg_indices(bnet); % need to unroll firstss = length(bnet.intra);engines.ss = ss;onodes = bnet.observed;hnodes = mysetdiff(1:ss, onodes);obschild = zeros(1,ss);for i=hnodes(:)'  %ocs = myintersect(children(bnet.dag, i), onodes);  ocs = children(bnet.intra, i);  assert(length(ocs) <= 1);  if length(ocs)==1    obschild(i) = ocs(1);  endendengine.obschild = obschild;engine.mult_self_ndx = [];engine.mult_parent_ndx = [];engine.marg_self_ndx = [];engine.marg_parent_ndx = [];engine = class(engine, 'loopy_dbn_inf_engine', inf_engine(bnet));

⌨️ 快捷键说明

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