function [Probs] = Probability_monitor(bnets, point) Probability_monitor: Computes the probability given by the models to a given point along the generations. For example, it is useful to calculate the probability of the optimum point during the search if it is known. Nevertheless, it is also useful to calculate the probability of different interesting points such as suboptimals. INPUT bnets{maxgen}: Cell array that stores the Bayesian networks learned at each generation. It is obtained from Cache{3,:} point: Array with the point whose probability will be computed. For example the optimum point OUTPUT Probs: An array with the probability for the given point at each generation. The values are in logarithmic scale. Example: (If the algorithm have reached the optimum (it is known)) optimal_point = AllStat{maxgen,2} for i=1:maxgen bnets{i}=Cache{3,i}; end [P] = Probability_monitor(bnets, optimal_point);
0001 function [Probs] = Probability_monitor(bnets, point) 0002 0003 % function [Probs] = Probability_monitor(bnets, point) 0004 % 0005 % Probability_monitor: Computes the probability given by the models to a given point along the generations. 0006 % For example, it is useful to calculate the probability of the 0007 % optimum point during the search if it is known. 0008 % Nevertheless, it is also useful to calculate the probability of different interesting points such as 0009 % suboptimals. 0010 % INPUT 0011 % bnets{maxgen}: Cell array that stores the Bayesian networks learned at 0012 % each generation. It is obtained from Cache{3,:} 0013 % point: Array with the point whose probability will be computed. For example the 0014 % optimum point 0015 % 0016 % 0017 % OUTPUT 0018 % Probs: An array with the probability for the given point at each 0019 % generation. The values are in logarithmic scale. 0020 % 0021 % Example: (If the algorithm have reached the optimum (it is known)) 0022 % optimal_point = AllStat{maxgen,2} 0023 % for i=1:maxgen 0024 % bnets{i}=Cache{3,i}; 0025 % end 0026 % [P] = Probability_monitor(bnets, optimal_point); 0027 0028 % Last version 5/11/2008. Carlos Echegoyen and Roberto Santana (carlos.echegoyen@ehu.es) 0029 0030 k = size(bnets,2); % Number of networks 0031 num_vars = size(bnets{1}.dnodes,2); % Number of variables 0032 0033 for j=1:num_vars 0034 point_cell{j} = point(j)+1; 0035 end 0036 0037 for i=1:k 0038 engine = jtree_inf_engine(bnets{i}); 0039 [eng, loglik_point]=enter_evidence(engine,point_cell); 0040 Probs(i) = exp(loglik_point); 0041 end