Bayesian networks made easy
Q&A with Zach Cox, Java coder and chief
developer of BNET Builder
Zach Cox is a software
engineer at Charles River Analytics, Inc. Cambridge, Mass.-based company that for the past
20 years has built intelligence and decision support applications for military, government
and commercial business use. Most recently it developed software
NASA scientists used for planning treks for the Mars Rover.
Cox is the chief developer of BNET Builder, an IDE designed to make it
easy to build Bayesian networks for making predictions and diagnoses based on
available information. Bayesian statistical theory is based on the work of
Thomas Bayes, an 18th century English theologian and mathematician, who,
according to the Encyclopedia Britannica “established a mathematical basis for
probability inference (a means of calculating, from the number of times an event
has not occurred, the probability that it will occur in future trials.”
Rich Seeley, senior editor for ADT, was introduced to Cox by
jProductivity, a vendor of Java-based software development tools including
Protection! Pro, an automated licensing framework for Java apps, which Cox is
using for BNET Builder.
ADT: Are you coding in Java?
Cox: Yes, it’s 100% Java
ADT: Tell me what you’ve been doing
Cox: Okay, some background on BNET Builder, it’s basically a development environment for building Bayesian networks.
ADT: What’s a Bayesian network?
Cox: Not many people know about the technology. It’s an artificial intelligence technology and it’s very similar to expert systems, rule systems, if-then rules. But instead of working with true and false logic, like if-then rules, it works with probability theory. So, you basically say, if A is true, then the probability that B is true is X. So, instead of saying, if it’s cloudy outside, then it will rain, you can say things like, if it’s cloudy outside, then the probability of rain is 85%.
ADT: How is this used?
Cox: It has a lot of different applications. One of the earlier applications that drove a lot of the research was medical diagnosis. So, a doctor or medical researchers can build a Bayesian network that specifies how different diseases cause symptoms. That’s a big part of Bayesian networks from reasons and causes to effects.
ADT: Diagnostics, then?
Cox: Yes, it’s a causal model and you initially specify, if you have a cold, what kind of symptoms does that cause? Like, runny nose, and sore throat and that kind of stuff. So, you build up this big causal model of which diseases cause which effects and probabilistically how they cause the symptoms and so when a patient goes into a doctor’s office, the patient tells the doctor what his symptoms are and then the doctor can use the Bayesian network model to diagnose what’s the most probable disease that this person has, given the symptoms this person has.
ADT: How about business uses?
Cox: Another big application of Bayesian networks is in the financial industry for credit scoring. So, you build this Bayesian network that specifies how things like age, salary, credit history and all that stuff cause people to pay or not pay their credit cards balances. So, somebody fills out their credit card application. They have a data entry clerk enter in all that data and then the Bayesian network predicts the probability of whether this person will or will not repay their loan. Then based on that probability they can approve or deny the card or the loan.
ADT: You have built something that allows people
to build these, then?
Cox: It’s basically, just like an IDE is used by software engineers to develop software code, BNET Builder is an IDE that lets knowledge engineers develop Bayesian networks.
ADT: What was the development process like?
Cox: It started out as an internal research project. A little background on the company: We mainly do research for different branches of the military. So, we’ll do a six-month or two-year research project where we create some software and then pass it on to the government. But part of the stipulations of that is that we get to keep the intellectual property to develop for commercial products. That’s where BNET Builder came from. It started out as an internal research tool that was used by our scientists and then I was hired by the company to develop that into a commercial product.
ADT: So what were you able to develop?
Cox: BNET Builder started as a research tool and we developed it into a commercial product. One of the key differentiating features of BNET Builder from our competitors, is ease of use. We’ve really tried to be the Macintosh of Bayesian network software. You don’t have to be an expert in Bayesian networks. It’s works right out of the box. It’s really easy to use, it looks nice, it’s really user friendly.
ADT: And that’s downloadable from your Website?
Cox: Yeah, I can actually give you a link to the project
Website. It’s www.cra.com/bnet
You can download a free version out there and find out more about it.
Rich Seeley is Web Editor for Campus Technology.