OOBN EM Learning

Instead of estimating parameters for a class in isolation from the context of an object oriented model where the class may have numerous instances, OOBN EM estimates the class parameters using evidence on all instances and the entire object oriented model.

The initial contents of the experience tables of nodes in the object-oriented model form the basis for the computation of “prior counts”. However, in the current implementation, prior experience is not supported for continuous nodes in objectoriented models (that is, the experience tables for such nodes must not contain positive values).

The contents of the updated experience tables reflect the fact that many instance nodes contribute to the learning of the same node in a class (i.e., the experience counts will be higher than the number of cases in the data set). Otherwise, everything specified in EM Learning also apply for OOBN EM.

OOBN EM is an integrated part of EM learning in HUGIN, either press the EM Learning Button or select the EM Learning Wizard item of the Wizards Menu.

Notes on OOBN data file format: Dot notation for class instances

When specifying a data file for an object oriented model, the instance nodes must be prefixed by a class instance name and a dot.

Example: How would a data file for EM in the Disease object oriented model (from the How to build OOBNs tutorial) look like?

The class for which we are estimating parameters is displayed in Figure 1.

../../../_images/Disease.png

Figure 1: BN for a single time slice of the Diseases problem.

The object oriented model using instances of the class is displayed in figure 2.

../../../_images/disease_prog_exp.png

Figure 2: Object-oriented network representing the Diseases problem.

The data file header must be structured like this:

DiseaseSlice_3.S2, DiseaseSlice_3.S1, DiseaseSlice_3.D2, DiseaseSlice_3.D1, DiseaseSlice_2.S2, DiseaseSlice_2.S1, DiseaseSlice_2.D2, DiseaseSlice_2.D1, DiseaseSlice_1.S2, DiseaseSlice_1.S1, DiseaseSlice_1.D2, DiseaseSlice_1.D1, DiseaseSlice_1.D2_prev, DiseaseSlice_1.D1_prev

Notice how the the class nodes D1, D2, S1, S2, D1_prev and D2_prev have been prefixed by the class instance names DiseaseSlice_3, DiseaseSlice_2 and DiseaseSlice_1.

See also description of data files.