Prediction is a well-researched area for Machine Learning a pplications. In these tasks, the aim is to predict the value f or some unseen characteristic based upon the values of other, s een, characteristics for a given example. Machine learning has been extensively applied to these types of tasks by automati ng the derivation of a predictive function or a set of predict ive rules. This predictive function can then be applied to new ex amples to estimate attribute values. Many techniques have been turned to this purpose. Inductive Logic Programming (I LP) (Muggleton (1999)), for instance, represents the attri bu es of given examples in first order logic and uses techniques suc h as inverse resolution to derive a set of first-order logic ru les which can be used to logically deduce an attribute value from other attributes. Artificial Neural Networks (Lippmann (1987)) can be trained to predict attribute values. A net is p re-configured with interconnecting perceptron nodes and th e weights associated with these nodes are adjusted to improve edictive accuracy over a training set. The learned artefa c in this case is a neural net able to predict one attribute valu e. Decision Trees can predict attribute values by consideri ng, in some stepwise order, the values of other attributes. One met hod of learning a decision tree is to apply the ID3 algorithm a s implemented in the c4.5 decision tree learning program (Qui nlan (1993)). The learned artefact is essentially a conjunc tio of implications which can be applied to a given example to pre dict the value for a single attribute. Each of these methods can be characterised by the specific ways they represent the t ask, the artefact they learn and how they learn it. We consider here another type of predictive artefact togeth er with another method of learning. The artefact we learn is a constraint satisfaction (CS) program, typically used for solving CS problems. A CS problem consists of a set of variabl es {x1, x2, . . ., xn}, a set of domains of values the variables can take and a set of c onstraints specifying which values the variables can take simultaneously. A solution to a CS proble m is an assignment of values to each of the variables from their domains such that no constraints are broken. They find w idespread use in science and industry. CS solvers allow users to specify CS problems in a particular syntax as CS prog rams and then search for solutions to the problem using a configurable search approach. We have adapted a CS program to be used for prediction. By encoding attributes as variables and machine learning appropriate constraints we obtain a pr edictive CS program. Given a new example for prediction, we add the values of all known attributes as variable value co nstraints to the predictive CS program. A CS solver can then determine allowable values, i.e. predictions, for unk nown attributes. We machine learn constraints by consideri ng combinations of attribute values, or classifications . By comparing how training examples fall into these classifi cations we can make conjectures about how different classifications relate to one-another and, through this, derive predictive relationships between the relative values of different att ribu es, which we then encode as constraints. In addition to a CS solver and machine learner, we use a SAT solver to filter conje ctur s, improving the efficiency of our CS programs. We believe our approach has some benefits over the approaches we di cussed above. Firstly, each of the above processes produces an artefact for predicting only one attribu te of a given example. This means that should the user wish to predict for another attribute, they need not re-train a ne w predictor. By contrast, our learned CS programs can predic t for any unknown attributes as it includes constraints learn d with respect to all considered classifications. In additi on, we believe our learned CS program may be more resistant to missi ng or corrupted data. This additional robustness is valuabl e as many real-world applications encounter instances of mis sing or corrupted data.
更多