about summary refs log tree commit diff
path: root/sourcecodes/parameter_learning/writeParameters.m
diff options
context:
space:
mode:
authorziejd22021-02-24 14:36:59 -0600
committerziejd22021-02-24 14:36:59 -0600
commit25b843f6bbacb1937bdb960777b73acbece64115 (patch)
tree88645b9d1d8a0eea19d7229555bf8805571bc8b7 /sourcecodes/parameter_learning/writeParameters.m
parent33cedf36248f616aa37d1462c69a4a3058a5d92e (diff)
downloadBNW-25b843f6bbacb1937bdb960777b73acbece64115.tar.gz
GENENET8 update
Diffstat (limited to 'sourcecodes/parameter_learning/writeParameters.m')
-rw-r--r--sourcecodes/parameter_learning/writeParameters.m34
1 files changed, 26 insertions, 8 deletions
diff --git a/sourcecodes/parameter_learning/writeParameters.m b/sourcecodes/parameter_learning/writeParameters.m
index 6efafe8a..cb119c76 100644
--- a/sourcecodes/parameter_learning/writeParameters.m
+++ b/sourcecodes/parameter_learning/writeParameters.m
@@ -5,7 +5,7 @@ function [] = writeParameters(pre,nnodes,bnet,labels,cases,labelsold,s,m)
 %    for the network.
 %
 % writeParameters is called by runBN_intial.m
-
+% Simplifying output to read in and make table on webpage.
 
 %%Get the types of the nodes.
 typefile = strcat(pre,'type.txt');
@@ -76,15 +76,32 @@ for i = 1:nnodes
     fprintf(fileID,'%s\n',labels{nodeid});
     %%%Print the type of node
     if bnet.node_sizes(nodeid) == 1;
-        line = 'Continuous node\n';
-        fprintf(fileID,line);
         %%% 'i' in the line below is correct: m and s are had original node labeling
-        adj_mu = predict.mu*s(i)+m(i);
-        adj_sigma = s(i)*predict.Sigma;
-	fprintf(fileID,'%6.4f\t%6.4f\n\n',adj_mu,adj_sigma);
+	CPD=struct(bnet.CPD{nodeid});
+	no_gaussians = size(CPD.Wsum)(1);
+	if no_gaussians == 1
+            %%%line = 'Continuous node\n';
+            %%%fprintf(fileID,line);
+            adj_mu = CPD.mean*s(i)+m(i);
+            adj_sigma = s(i)*sqrt(CPD.cov);
+	    fprintf(fileID,'Mean\tSt Dev\n');
+	    fprintf(fileID,'%6.4f\t%6.4f\n\n',adj_mu,adj_sigma);
+	else
+        %%%%line = 'Continuous node modeled as a mixture of %i Gaussian distributions\n';
+        %%%%fprintf(fileID,line,no_gaussians);
+	fprintf(fileID,'Mean\tSt Dev\tWeight\n');
+	Wsum = sum(CPD.Wsum);
+	for j=1:no_gaussians
+            adj_mu = CPD.mean(j)*s(i)+m(i);
+            adj_sigma = s(i)*sqrt(CPD.cov(j));
+	    weight = CPD.Wsum(j)/Wsum;
+	    fprintf(fileID,'%6.4f\t%6.4f\t%6.4f\n',adj_mu,adj_sigma,weight);
+	end
+        fprintf(fileID,'\n');
+        end
     else
-        line = 'Discrete node with %i states\n';
-        fprintf(fileID,line,bnet.node_sizes(nodeid));
+        %%line = 'Discrete node with %i states\n';
+        %%fprintf(fileID,line,bnet.node_sizes(nodeid));
         %line = 'Probability of each state\n';
         %fprintf(fileID,line);
         nodeid2 = 0;
@@ -94,6 +111,7 @@ for i = 1:nnodes
               break
            end
         end
+	fprintf(fileID,'State\tProbability\n');
         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));