about summary refs log tree commit diff
path: root/BNW_parameter_learning/writeParameters_int.m
diff options
context:
space:
mode:
authorziejd22019-01-31 23:07:53 -0600
committerziejd22019-01-31 23:07:53 -0600
commit2d45f744e35b91c70a2db5f8ae6701e76d2a9b80 (patch)
tree644bc3823f42f9073eb045dd1575648c86d749f8 /BNW_parameter_learning/writeParameters_int.m
parentf94dd1a91d91b516573f80f6e80c57bc517b9afb (diff)
downloadBNW-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_int.m')
-rw-r--r--BNW_parameter_learning/writeParameters_int.m190
1 files changed, 0 insertions, 190 deletions
diff --git a/BNW_parameter_learning/writeParameters_int.m b/BNW_parameter_learning/writeParameters_int.m
deleted file mode 100644
index 69dcbb93..00000000
--- a/BNW_parameter_learning/writeParameters_int.m
+++ /dev/null
@@ -1,190 +0,0 @@
-function [] = writeParameters_int(pre,bnet,nnodes,labels,cases,stdevs,means,selectvar,selectdata)
-%Writes a file that contains the parameters of the network after intervention.
-%
-% The file is called ???parameters_ev.txt where ??? is the prefix in BNW
-%    for the network.
-%
-% writeParameters is called by Predictmultipleintervention.m
-
-%First read input file to get 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
-
-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);
-
-%Get list of nodes that are children, grandchildren, etc. of intervened nodes
-%int_nodes contains the list of these children nodes
-int_nodes = zeros(1,nnodes);
-%new_nodes is just a temporary array to know when to keep looking
-new_nodes = zeros(1,nnodes);
-for i = 1:nnodes
-    if !isempty(evidence{i});
-        new_nodes(i) = 1;
-        int_nodes(i) = 1;
-    end
-end
-while sum(new_nodes) != 0
-   new_nodes_old = new_nodes;
-   new_nodes = zeros(1,nnodes);
-   for i = 1:nnodes
-      if new_nodes_old(i) == 1
-           for j = 1:nnodes
-              if int_nodes(j) == 0
-	        if bnet.dag(i,j) == 1,
-		     new_nodes(j) = 1;
-                end
-              end
-           end
-       end
-   end
-   for i = 1:nnodes
-      if new_nodes(i) == 1;
-        int_nodes(i) = 1;
-      end
-   end               
-end
-
-
-%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
-    %check to see if this is a node impacted by intervention
-    if int_nodes(nodeid) == 1
-    %%%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 intervention:\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 intervention:\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 = 'Intervention on this node assigned the following value:\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 = 'Intervention on this node assigned the following state:\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
-end
-
-
-
-fclose(fileID);
-
-end
-