Вывод в динамической байесовской сети с использованием Bayes Net Toolbox для Matlab

Я работаю над проектом по автоматическому распознаванию аккордов, в котором используется динамическая байесовская сеть 2-TBN, в которой есть 4 дискретных скрытых узла и 2 непрерывных наблюдаемых узла.

Я создал модель с помощью набора инструментов байесовской сети, и с этим проблем нет. Пятый и шестой узлы являются наблюдаемыми узлами 13 и 12 измерений каждый. Я пытаюсь использовать часть набора инструментов для вывода, которую я не могу сделать. Я написал следующий код, который не дает правильного вывода.

function [path,data] = mydecode(bnet,mean,sigma,dat)

dataaa=dat';
data=dataaa(1:12,:);
%chord dimension
chord=109;
%observed chroma dimension
obs=12;
evidence = cell(6,T);
for i=1:T
   evidence(6,i)={dat(i,1:12)} ;
end 
for i=1:T
   evidence(5,i)={dat(i,13:25)} ;
end

engine = {};
engine{end+1} = smoother_engine(jtree_2TBN_inf_engine(bnet));
disp(engine);

mpe = find_mpe(engine{1}, evidence);

end

Подскажите, пожалуйста, как поступить с выводом.


person sid0710    schedule 26.11.2013    source источник


Ответы (1)


Ссылка: http://www.cs.ubc.ca/~murphyk/Bayes/usage_dbn.may22.html

Код:

   engine = jtree_dbn_inf_engine(bnet);
   evidence = cell(N,T);
   [engine, ll] = enter_evidence(engine, evidence);
   evidence(4,1) = {2};
   marg = marginal_nodes(engine, 4, 2);  % This is like querying node 4 in time-slice 2
   marg.T
person Ayush    schedule 02.08.2014