From e3f7237ffcb19f19db3b68777b5a94b89e07f66a Mon Sep 17 00:00:00 2001 From: ziejd2 Date: Thu, 13 Sep 2018 23:59:20 -0500 Subject: New parameter learning options The main change here is in the parameter learning methods. The parameters that are learned at first (i.e., if there is no evidence) are the distributions that are found directly in the data. I had to create or significantly modify several BNT files for this. If there is evidence, the parameters are learned using a Dirichlet prior. This only required a couple of small changes to the BNW parameter learning files. --- sourcecodes/parameter_learning/parameterLearning.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sourcecodes/parameter_learning/parameterLearning.m') diff --git a/sourcecodes/parameter_learning/parameterLearning.m b/sourcecodes/parameter_learning/parameterLearning.m index 3ef6c0b3..2c4a1f9f 100644 --- a/sourcecodes/parameter_learning/parameterLearning.m +++ b/sourcecodes/parameter_learning/parameterLearning.m @@ -4,7 +4,7 @@ function [ bnet ] = parameterLearning( bnet,cases,engine_name ) % % 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'. -% +% with dirichlet priors % % parameterLearning is called by runBN_initial.m, % Predictmultiple.m, and Predictmultipleintervention.m @@ -35,7 +35,8 @@ 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)); +% bnet.CPD{dnodes(i)} = tabular_CPD(bnet,dnodes(i)); + bnet.CPD{dnodes(i)} = tabular_CPD(bnet,dnodes(i),'prior_type','dirichlet'); end for i = 1:size(cnodes,2) -- cgit 1.4.1