bayes q2
This commit is contained in:
@ -102,7 +102,27 @@ def joinFactors(factors: List[Factor]):
|
||||
|
||||
|
||||
"*** YOUR CODE HERE ***"
|
||||
raiseNotDefined()
|
||||
factor_list = [item for item in factors]
|
||||
conditioned_variables = []
|
||||
unconditioned_variables = []
|
||||
variablesDomainDict = factor_list[0].variableDomainsDict()
|
||||
for factor in factor_list:
|
||||
for var in factor.unconditionedVariables():
|
||||
if var not in unconditioned_variables:
|
||||
unconditioned_variables.append(var)
|
||||
if var in conditioned_variables:
|
||||
conditioned_variables.remove(var)
|
||||
for var in factor.conditionedVariables():
|
||||
if var not in conditioned_variables and var not in unconditioned_variables:
|
||||
conditioned_variables.append(var)
|
||||
joint_factor = Factor(unconditioned_variables, conditioned_variables, variablesDomainDict)
|
||||
cases=joint_factor.getAllPossibleAssignmentDicts()
|
||||
for case_ in cases:
|
||||
prob = 1
|
||||
for factor in factor_list:
|
||||
prob *= factor.getProbability(case_)
|
||||
joint_factor.setProbability(case_, prob)
|
||||
return joint_factor
|
||||
"*** END YOUR CODE HERE ***"
|
||||
|
||||
########### ########### ###########
|
||||
|
Reference in New Issue
Block a user