def bayesian_inference(): ''' bayesian_inference ''' A = Factor(name='A', values=[0, 1], cpd=[0.6, 0.4]) B = Factor(name='B', values=[0, 1], cpd=[0.7, 0.3]) C = Factor(name='C|A,B', full='C', values=[0, 1], cond=[A, B], cpd=[0.7, 0.3, 0.9, 0.1, 0.8, 0.2, 0.6, 0.4]) print C.joint().marginal(B.var[-1]).reduce(var=C.var[-1], value=0).norm()
def cancer_example(): ''' Cancer example ''' C = Factor(name='Cancer', values=["no", "yes"], cpd=[0.999, 0.001]) T = Factor(name='Test', values=["pos", "neg"], cond=[C], cpd=[0.2, 0.8, 0.9, 0.1]) print C print T print T.joint() print T.uncond() R = T.joint().query2(query=[C], evidence={T:'pos'}) R.name = "Tested once" print R
def cancer_example(): ''' Cancer example ''' C = Factor(name='Cancer', values=["no", "yes"], cpd=[0.999, 0.001]) T = Factor(name='Test', values=["pos", "neg"], cond=[C], cpd=[0.2, 0.8, 0.9, 0.1]) print C print T print T.joint() print T.uncond() R = T.joint().query2(query=[C], evidence={T: 'pos'}) R.name = "Tested once" print R