1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| clear all;
load heart.txt ;
heart=round(heart);
NbEx=270;
NbApp=NbEx*0.7;
NbTest=NbEx-NbApp;
rand('state', 0); randn('state', 0);
melange=randperm(NbEx);
BDapp=heart(melange(1:NbApp),:)';
BDtest=heart(melange(NbApp+1:NbEx),:)';
N = 9;
dag = zeros(N,N);
%class = 14;
V=1; F=2; B=3; Min=4; E=5; C=6; D=7;Mout=8; L=9;
dag(V,[Min,D,E])=1;
dag(F,E)=1;
dag(B,[D,C])=1;
dag(Min,Mout)=1;
dag(E,D)=1;
dag(D,[Mout,L])=1;
node_sizes=max(heart);
discrete_nodes=[1 2 3];
cnodes = mysetdiff(1:N, discrete_nodes);
bnet=mk_bnet(dag,node_sizes,discrete_nodes);
names = {'V', 'F', 'B', 'Min', 'E', 'C', 'D', 'Mout', 'L'};
carre_rond = [1 1 1 0 0 0 0 0 0];
draw_graph(bnet.dag,names,carre_rond);
title('heart');
for i=1:3
bnet.CPD{i} = tabular_CPD(bnet, i);
end
for i=4:9
bnet.CPD{i} = gaussian_CPD(bnet, i);
end
bnet = learn_params(bnet, BDapp);
CPT = cell(1,N);
for i=discrete_nodes
s=struct(bnet.CPD{i});
CPT{i}=s.CPT;
end
celldisp(CPT);
for i=cnodes
s=struct(bnet.CPD{i});
s.mean
s.cov
end |
Partager