Introduction to Artificial Inteligence

Assignment 4


Programming assignment - disgnostic reasoning with Bayes networks

Goals

Getting a feel for probabilistic reasoning. Using Bayes networks for diagnostic reasoning, and earning some hands-on experience with JavaBayes

Requirements

You will define and reason on a network for medical diagnosis. In the system, there are three types of variables:

  1. Primal causes - these variables are knowledge about patient data that requires no testing of the patient, such as age, sex, race, and hereditary diseases in relatives.
  2. Pathology - possible diseases, such as cancer, influenza, pneumonia, common cold, and angina pectoris (heart disease).
  3. Symptoms - these are observable variables in a patient, or results of tests, such as: high temperature, tachycardia (fast pulse), headache, cough, sore throught, blood or urine test results (high cholesterol, low blood count, HIV, blood in urine).

Pathology is affected by the primal causes. The symptoms are modeled by noisy-or nodes, each potentially caused by one or more diseases. You are to create a Bayes network modeling at least 3 primal causes, 4 diseases, and 4 symptoms. Explain the choices made in your design (especially the network topology). Make up probabilities such that you will be able to demonstrate all behaviours required below.

Now that your model is ready, use JavaBayes to create the network, edit probability tables, and save the network as an XML file. Now, perform reasoning on the network using JavaBayes. Establish values for primal cause nodes and some symptoms, and perform observations - i.e. find the probability of all diseases given the evidence, and state the most likely disease. Also, compute and state the MAP assignment given the evidence.

Perform the resoning over at least 2 different patients of different background. For each patient, compute the probability of all diseases given:

Show in the data (by using at least 1 pair of different evidence sets each), behaviours of the following types:

Deliverables

You need to turn in:

Deadline: May 31, 2001.

Additional information: To run JavaBayes, just run the "javabayes" program on one of the machines where the program is installed (silver, prune, possibly others), after making sure the DISPLAY environment variable is set up correctly.