Need to adapt this repeated loop for storing predicted posteriors for each target in the list, and eventually calc error_df for each Target (or into one DF with multiple indices).
See BayesianNetwork.crossValidate:
for i in range (0,binnedTestingData.shape[0]):
row = binnedTestingDict[i]
evidence = without_keys(row, queries.keys())
fn = TableCPDFactorization(baynet)
result = condprobve2(fn, queries, evidence)
# if more than 1 target was specified
if len(queries) > 1:
posteriors = printdist(result, baynet)
for target in targetList:
marginalPosterior = posteriors.groupby(target)['probability'].sum()
marginalTargetPosteriorsDict[target].append(marginalPosterior) #might need [probability]
# if only 1 target was specified
else:
posterior = printdist(result, baynet)
posterior.sort_values([targetList[0]],inplace=True) # to make sure probabilities are listed in order of bins, sorted by first queried variable
marginalTargetPosteriorsDict[target].append(posterior['probability'])
See BayesianNetwork.crossValidate_JT:
for i in range(0, binnedTestingData.shape[0]):
row = binnedTestingDict[i]
evidence = without_keys(row, queries.keys())
result = self.inferPD_JT_hard(evidence)
# if more than 1 target was specified
if len(queries) > 1:
posteriors = printdist(result, baynet)
for target in targetList:
marginalPosterior = posteriors.groupby(target)['probability'].sum()
marginalTargetPosteriorsDict[target].append(marginalPosterior) # might need [probability]
# if only 1 target was specified
else:
posterior = printdist(result, baynet)
posterior.sort_values([targetList[0]], inplace=True) # to make sure probabilities are listed in order of bins, sorted by first queried variable
marginalTargetPosteriorsDict[target].append(posterior['probability'])
See BayesianNetwork.validateNew:
for i in range (0,binnedTestingData.shape[0]):
row = binnedTestingDict[i]
evidence = without_keys(row, queries.keys())
fn = TableCPDFactorization(baynet)
result = condprobve2(fn, queries, evidence)
# if more than 1 target was specified
if len(queries) > 1:
posteriors = printdist(result, baynet)
for target in targetList:
marginalPosterior = posteriors.groupby(target)['probability'].sum()
marginalTargetPosteriorsDict[target].append(marginalPosterior) #might need [probability]
# if only 1 target was specified
else:
posterior = printdist(result, baynet)
posterior.sort_values([targetList[0]],inplace=True) # to make sure probabilities are listed in order of bins, sorted by first queried variable
marginalTargetPosteriorsDict[target].append(posterior['probability'])
Need to adapt this repeated loop for storing predicted posteriors for each target in the list, and eventually calc error_df for each Target (or into one DF with multiple indices).
See
BayesianNetwork.crossValidate
:See
BayesianNetwork.crossValidate_JT
:See
BayesianNetwork.validateNew
: