zackxconti / bnmetamodel_gh

Repo for bnmetamodel lib version for Lab Mouse Grasshopper plug-in.
1 stars 2 forks source link

Update BN PDS and set them as priors for inference with the next evidence variable #37

Open kallewesterling opened 11 months ago

kallewesterling commented 11 months ago

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]