wolffd@0: % We compare MCMC structure learning with exhaustive enumeration of all dags. wolffd@0: wolffd@0: N = 3; wolffd@0: %N = 4; wolffd@0: dag = mk_rnd_dag(N); wolffd@0: ns = 2*ones(1,N); wolffd@0: bnet = mk_bnet(dag, ns); wolffd@0: for i=1:N wolffd@0: bnet.CPD{i} = tabular_CPD(bnet, i); wolffd@0: end wolffd@0: wolffd@0: ncases = 100; wolffd@0: data = zeros(N, ncases); wolffd@0: for m=1:ncases wolffd@0: data(:,m) = cell2num(sample_bnet(bnet)); wolffd@0: end wolffd@0: wolffd@0: dags = mk_all_dags(N); wolffd@0: score = score_dags(data, ns, dags); wolffd@0: post = normalise(exp(score)); wolffd@0: wolffd@0: [sampled_graphs, accept_ratio] = learn_struct_mcmc(data, ns, 'nsamples', 100, 'burnin', 10); wolffd@0: mcmc_post = mcmc_sample_to_hist(sampled_graphs, dags); wolffd@0: wolffd@0: if 0 wolffd@0: subplot(2,1,1) wolffd@0: bar(post) wolffd@0: subplot(2,1,2) wolffd@0: bar(mcmc_post) wolffd@0: print(gcf, '-djpeg', '/home/cs/murphyk/public_html/Bayes/Figures/mcmc_post.jpg') wolffd@0: wolffd@0: clf wolffd@0: plot(accept_ratio) wolffd@0: print(gcf, '-djpeg', '/home/cs/murphyk/public_html/Bayes/Figures/mcmc_accept.jpg') wolffd@0: end