about summary refs log tree commit diff
path: root/BNW_parameter_learning/parameterLearning.m
diff options
context:
space:
mode:
Diffstat (limited to 'BNW_parameter_learning/parameterLearning.m')
-rw-r--r--BNW_parameter_learning/parameterLearning.m31
1 files changed, 31 insertions, 0 deletions
diff --git a/BNW_parameter_learning/parameterLearning.m b/BNW_parameter_learning/parameterLearning.m
index d4b67c87..414ffe6c 100644
--- a/BNW_parameter_learning/parameterLearning.m
+++ b/BNW_parameter_learning/parameterLearning.m
@@ -1,5 +1,14 @@
 function [ bnet ] = parameterLearning( bnet,cases,engine_name )

 %parameterLearning Do parameter learning and inference

+% It returns the bnet with parameters learned from the data in cases.

+% 

+% This is very basic now. It could be modified to use different engine

+%  types in the future. Now, I always use the 'jtree_inf_engine'.

+% 

+%

+% parameterLearning is called by runBN_initial.m, 

+%   Predictmultiple.m, and Predictmultipleintervention.m

+

 

 %engine is an optional argument

 if nargin < 3

@@ -15,3 +24,25 @@ end
 

 end

 

+function [ bnet ] = getParams( bnet, cases )

+%getParams Code to initialize CPT and do parameter learning.

+%This will be very basic for now.  I can add more options later.

+%

+

+dnodes = bnet.dnodes;

+cnodes = bnet.cnodes;

+nnodes = size(dnodes,2)+size(cnodes,2);

+

+%make dnodes tabular_CPT

+for i = 1:size(dnodes,2)

+    bnet.CPD{dnodes(i)} = tabular_CPD(bnet,dnodes(i));

+end

+

+for i = 1:size(cnodes,2)

+    bnet.CPD{cnodes(i)} = gaussian_CPD(bnet,cnodes(i));

+end

+

+bnet = learn_params(bnet,cases);

+

+

+end