Bayesian Networks in Ruby


Carl Youngblood is speaking on Bayesian networks in Ruby. He starts by pointing out that building complete logical systems by building rules is necessarily a futile task. The answer? A system that accounts for ignorance and degree of belief probabilistically. He quote Norvig: "Probability provides a way of summarizing the uncertainty that comes from our laziness and ignorance."

After a brief tutorial on how probability can be used to overcome the weaknesses of predicate logic, Carl launches a discussion of Bayesian inference and networks. That took quite a while, but was a good tutorial on the problems.

Carl is the author of SBN, a Ruby module for Bayesian networks. He shows how you can create Bayesian networks, input the probabilities for the state tables, and build the network. Once that's done, you can query the network to understand the probabilities of events represented by the nodes.

Currently, you have to specify the network structure, rather than allowing it to learn the structure, something that makes the entire process easier, not to mention useful for many of the tasks people like to use Bayesian networks for.