See BayesianNetwork.inferPD_2: Need to update BN PDS and set them as priors for inference with the next evidence variable.
for varName in evidence.keys(): # for each evidence variable
evidencePD = evidence[varName]
postInferencePDs = {}
assembledPosterior = []
for i, queryVarName in enumerate (query.keys()):
num_states = len(allStatesQueriedMarginalPosteriors[0][i]['probability'].tolist())
for j in range (0, num_states):
sum = 0
for k in range (0,len(evidencePD)):
sum+= allStatesQueriedMarginalPosteriors[k][i]['probability'].tolist()[j]* evidencePD[k]
assembledP[i].set_value(j, 'probability', sum) # data frame
assembledPosterior.append(sum) # list
assembledPosteriors.append(assembledPosterior)
postInferencePDs.update({queryVarName: assembledP[i]['probability'].tolist()})
#TODO: here need to update BN PDS and set them as priors for infernece with the next evidence variable # Issue #7 --> extract to separate issue
# for visualising evidence PDs
for evidenceVarName in evidence.keys():
postInferencePDs[evidenceVarName] = evidence[evidenceVarName]
See
BayesianNetwork.inferPD_2
: Need to update BN PDS and set them as priors for inference with the next evidence variable.