[求助]如何用matlab的BNT软件包对数据建立一个贝叶斯网络及条件概率表
我想用matlab的bnt工具包实现一个基于贝叶斯网络的试卷分析试验,但是程序总是调不出来,请高手们帮帮忙,给补充成一个可调试出来的程序吧。<BR>% 结构学习是K2算法,参数学习是最大后验<BR>n=6;<BR>ns=[3 3 2 2 3 3];<BR>A=1; B=2; C=3; D=4; E=5; Class=6;<BR>order=[4 5 6 3 2 1]; %指定节点次序<BR>max_fan_in=2;<BR>result_matrix=zeros(ns(Class),ns(Class));<BR>%读入训练数据集<BR>fn=’bdata_001.txt’;<BR>load(fn);<BR>fata_train1=bdata_001’;<BR>[num_attrib num_cases]=size(data_train1);<BR>data_train=zeros(num_attrib,num_cases);<BR>%根据实例进行网络结构学习<BR>dag_gbn=zeros(n,n);<BR>dag_gbn=learn_struct-K2(data_train, ns, order, ’max_fan_in’, max_fan_in);<BR>bnet2=mk_bnet(dag_gbn,ns);<BR>%对生成的结构进行参数学习<BR>priors=1;<BR>seed=0;<BR>rand(‘state’, seed);<BR>for i=1:n<BR> bnet2.CPD{i}=tabular_CPD(bnet2, i, ‘CPT’, ‘unif’, ‘prior_type’, ‘dirichlet_type’, ‘BDeu’,’dirichlet_weight’, priors);<BR>end<BR>bnet4=bayes_update_params(bnet2, data_train);<BR>CPT3-cell(1,n);<BR>for i=1:n<BR> s=struct(bnet4,CPD{i});<BR>CPT3{i}=s.CPT;<BR>end<BR>%画出图形<BR>draw_graph(dag_gbn)<BR>谢谢啦!!!!!<BR>急需!!!!页:
[1]
