The classification task consist of classifying a
variable called the *class variable* given a set of variables
, called *attribute variables*.
A classifier
is a function that maps an instance of to a value of .
The classifier is learned from a dataset consisting of samples
over .
The learning task consists of finding an appropriate Bayesian network
given a data set over .

All Bayes network algorithms implemented in Weka assume the following for the data set:

- all variables are discrete finite variables. If you have a data set
with continuous variables, you can use the following filter to discretize them:
`weka.filters.unsupervised.attribute.Discretize` - no instances have missing values. If there are missing values in the
data set, values are filled in using the following filter:
`weka.filters.unsupervised.attribute.ReplaceMissingValues`

The first step performed by `buildClassifier` is checking if the data set fulfills
those assumptions. If those assumptions are not met, the data set is automatically
filtered and a warning is written to STDERR.^{2}

Remco Bouckaert 2008-05-12