Can anyone recommend a Bayesian belief network classifier implemented in Python that can generate a probability of belief based on the input of a sparse network describing a series of facts about several inter-related objects?
e.g. given the facts "X is hungry, is a monkey and eats" formulated in FOL like:
isHungry(x) ^ isMonkey(x) ^ eats(x,y)
as well as a training corpus like:
isHungry(a) ^ isMonkey(a) ^ eats(a,b) => true
isHungry(b) ^ ~isMonkey(b) ^ eats(b,c) => true
isMonkey(d) ^ eats(d,e) => true
isMonkey(f) ^ eats(f,g) => false
isMonkey(h) ^ ~eats(h,i) => true
isBanana(j) ^ ~eats(j,k) => true
I'd like to train a Bayesian belief network on the corpus, and use it to estimate the belief probability of the facts.
Note, I'm not talking about Naive Bayesian text classifiers.
解决方案
The Python Bayes Network Toolbox would be a good starting point.
In addition, there is this more generic Bayesian inference tools package, named bayespy.
Hth.