| 12
 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 |