求助动态贝叶斯网络参数学习函数的使用方法
求助动态贝叶斯网络参数学习函数的使用方法
`data=[
3 2 2 1;
2 2 3 4;
1 2 3 4;
2 3 4 3;
2 2 1 1;
1 3 2 3;
2 3 4 3;
];
data=data’;
ss=4;
T=2;
N=4;
intra = zeros(4);
intra(1,4) = 1;
intra(2,4) = 1;
intra(3,4) = 1;
inter = zeros(4);
inter(4,1) = 1;
inter(4,2) = 1;
inter(4,3) = 1;
A=3; B=3;C=4;D=3;
ns = [A B C D];
bnet = mk_dbn(intra, inter, ns,‘discrete’, [], ‘observed’, 4);
for i=1:2*4
bnet.CPD{i} = tabular_CPD(bnet, i);
end
engine = jtree_dbn_inf_engine(bnet);
ncases = 5;
cases = cell(1, ncases);
n=2;
onodes = [2];
for i=1:ncases
ev = sample_dbn(bnet, T);
cases{i} = cell(n,T);
cases{i}(onodes,:) = ev(onodes, : );
end
bnet1 = learn_params_dbn(bnet, data);
以上是我按照网上的一些例子做的一个简单的动态贝叶斯模型。前面已经建立了模型结构,但是不知道怎么使用数据训练它。
我看了工具箱参数学习的m文件,按照它给的数据大小格式自己编写数据,输出总是报错。如下:
提示输入参数不足,可是我总是找不出哪个参数缺少了。
本人新手入门,有些知识可能还没了解透彻。希望大牛们高抬贵手,帮帮我这个本科生。我已经卡在这好长时间了,帮帮我。:’(