diff options
| author | ziejd2 | 2019-01-31 23:07:53 -0600 |
|---|---|---|
| committer | ziejd2 | 2019-01-31 23:07:53 -0600 |
| commit | 2d45f744e35b91c70a2db5f8ae6701e76d2a9b80 (patch) | |
| tree | 644bc3823f42f9073eb045dd1575648c86d749f8 /BNW_parameter_learning/writeParameters_ev.m | |
| parent | f94dd1a91d91b516573f80f6e80c57bc517b9afb (diff) | |
| download | BNW-2d45f744e35b91c70a2db5f8ae6701e76d2a9b80.tar.gz | |
Deleting parameter learning folder
There was an extra folder with the Matlab/Octave parameter learning files. These were out of date, so I deleted them and kept the versions in the sourcecoades directory.
Diffstat (limited to 'BNW_parameter_learning/writeParameters_ev.m')
| -rw-r--r-- | BNW_parameter_learning/writeParameters_ev.m | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/BNW_parameter_learning/writeParameters_ev.m b/BNW_parameter_learning/writeParameters_ev.m deleted file mode 100644 index 1f07c745..00000000 --- a/BNW_parameter_learning/writeParameters_ev.m +++ /dev/null @@ -1,157 +0,0 @@ -function [] = writeParameters_ev(pre,bnet,nnodes,labels,cases,stdevs,means,selectvar,selectdata) -%Writes a file that contains the parameters of the network after entering evidence. -% -% The file is called ???parameters_ev.txt where ??? is the prefix in BNW -% for the network. -% -% It is called by Predictmultiple.m - - -%Read in original node labels to get node IDs. -infile = strcat(pre,'continuous_input.txt'); -fin = fopen(infile,'r'); -labelsold = cell(1,nnodes); -buffer = fgetl(fin); -for j = 1:nnodes - [next,buffer] = strtok(buffer); - labelsold{j} = next; -end -fclose(fin); - - -evidence = cell(1,nnodes); -engine = jtree_inf_engine(bnet); - -m = size(selectvar,1); - -%%Get the types of the nodes. -typefile = strcat(pre,'type.txt'); -ftype = fopen(typefile,'r'); -types = cell(1,nnodes); -buffer = fgetl(ftype); -buffer = fgetl(ftype); -for j = 1:nnodes - [next,buffer] = strtok(buffer); - types{j} = uint16(str2num(next)); -end - -max_states = 0; -disc_nodes = 0; -for j = 1:nnodes - if types{j} > max_states - max_states = types{j}; - end - if types{j} > 1 - disc_nodes = disc_nodes + 1; - end -end - -%Add 1 to max_states to account for node name -max_states = max_states + 1; - -%%Get mapping of discrete levels. -levelfile = strcat(pre,'nlevels.txt'); -flevels = fopen(levelfile,'r'); -levels = cell(disc_nodes,max_states); -ndisc_nodes = 0; -for i=1:disc_nodes - ndisc_nodes = ndisc_nodes + 1; -buffer = fgetl(flevels); -for j = 1:max_states - [next,buffer] = strtok(buffer); - if j == 1 - levels{i,j} = next; - else -% levels{i,j} = uint16(str2num(next)); - levels{i,j} = next; - end - if length(buffer) < 1 - break - end - end -end - - -ev_dat = zeros(1,nnodes); -for i = 1:m, - di=selectvar(i,1); - ev_dat(di)=selectdata(i,1); -%Need to standardize evidence for continuous nodes. - if bnet.node_sizes(di) == 1, - ev_dat(di) = (ev_dat(di) - means{di})/stdevs{di}; - end - evidence{di} = ev_dat(di); -end - -[engine,loglik]=enter_evidence(engine,evidence); - -%Open output file. -filename = strcat(pre,'parameters_ev.txt'); -fileID = fopen(filename,'w'); - -for i = 1:nnodes - for j = 1:nnodes - if strcmp(labelsold{i},labels{j}); - nodeid = j; - break - end - end - %%%Print the name of the node - fprintf(fileID,'%s\n',labels{nodeid}); - predict = marginal_nodes(engine,nodeid); - if isempty(evidence{nodeid}) - %%%Print the type of node - if bnet.node_sizes(nodeid) == 1; - line = 'Continuous parameters considering evidence:\n'; - fprintf(fileID,line); - %line = 'Mean and standard deviation of Gaussian distribution\n'; - %fprintf(fileID,line); - adj_mu = predict.mu*stdevs{nodeid}+means{nodeid}; - adj_sigma = stdevs{nodeid}*predict.Sigma; - fprintf(fileID,'%6.4f\t%6.4f\n\n',adj_mu,adj_sigma); - else - line = 'Probability of states considering evidence:\n'; - fprintf(fileID,line); - nodeid2 = 0; - for k = 1:ndisc_nodes, - if strcmp(levels{k,1},labels{nodeid}), - nodeid2 = k; - break - end - end - for j = 1:bnet.node_sizes(nodeid), - %%%For discrete nodes, the state and the percent of that state -% fprintf(fileID,'%i\t%6.4f\n',levels{nodeid2,j+1},predict.T(j)); - fprintf(fileID,'%s\t%6.4f\n',levels{nodeid2,j+1},predict.T(j)); - end; - fprintf(fileID,'\n') - end - else - if bnet.node_sizes(nodeid) == 1; - line = 'Evidence was observed for this node. The observed value was:\n'; - fprintf(fileID,line); - adj_mu = ev_dat(nodeid)*stdevs{nodeid}+means{nodeid}; - fprintf(fileID,'%6.4f\n\n',adj_mu); - else - nodeid2 = 0; - for k = 1:ndisc_nodes, - if strcmp(levels{k,1},labels{nodeid}), - nodeid2 = k; - break - end - end - line = 'Evidence was observed for this node. The observed state was:\n'; - fprintf(fileID,line); - state_ev = uint16(ev_dat(nodeid)); -% fprintf(fileID,'%i\n\n',levels{nodeid2,state_ev+1}); - fprintf(fileID,'%s\n\n',levels{nodeid2,state_ev+1}); - end - end -end - - - -fclose(fileID); - -end - |
