Hi,
I am new to Webppl. I wonder how can I infer the joint probability over a Bayesian Network (BN) with some observations as a single number? Assuming I have such a BN as below:
/**
var bn = function() {
var Cloudy = sample(Discrete({ps:[0.5, 0.5]}));
var Sprinkler = Cloudy ? sample(Discrete({ps: [0.9, 0.1]})) : sample(Discrete({ps: [0.5, 0.5]}));
var Rain = Cloudy ? sample(Discrete({ps: [0.2, 0.8]})) : sample(Discrete({ps: [0.8, 0.2]}));
var WetGrass = Sprinkler ? (Rain ? sample(Discrete({ps: [0.01, 0.99]})): sample(Discrete({ps: [0.1, 0.9]})))
: (Rain ? sample(Discrete({ps: [0.1, 0.9]})): sample(Discrete({ps: [1.0, 0.0]})));
condition(WetGrass,1);
//return [Cloudy, Rain, Sprinkler, WetGrass];
//return sum([Cloudy, Rain, Sprinkler, WetGrass]);
return {"WetGrass": WetGrass, "Rain": Rain, "Sprinkler": Sprinkler, "Cloudy": Cloudy};
}
var dist = Infer(
{method: 'enumerate', maxExecutions: 1000000},
bn);
print(dist);
viz.table(dist);
**/
Also, although this returns me a distribution table, this distribution table seems to be normalized. I wonder how should I do if I want a unnormalized one?
Thank you so much for help!
Kind regards,
Jingwen