Suppose that we record attributes for an animal whose label we do not know; we can predict its label from the learned classification model. We will use the following animal for this process:
First, we construct a feature vector describing the new specimen, as follows:
double[] vals = new double[data.numAttributes()]; vals[0] = 1.0; //hair {false, true} vals[1] = 0.0; //feathers {false, true} vals[2] = 0.0; //eggs {false, true} vals[3] = 1.0; //milk {false, true} vals[4] = 0.0; //airborne {false, true} vals[5] = 0.0; //aquatic {false, true} vals[6] = 0.0; //predator {false, true} vals[7] = 1.0; //toothed {false, true} vals[8] = 1.0; //backbone {false, true} vals[9] = 1.0; //breathes {false, true} vals[10] = 1.0; //venomous {false, true} vals[11] = 0.0; //fins {false, true} vals[12] = 4.0; //legs INTEGER [0,9] vals[13] = 1.0; //tail {false, true} vals[14] = 1.0; //domestic {false, true} vals[15] = 0.0; //catsize {false, true} DenseInstance myUnicorn = new DenseInstance(1.0, vals);
myUnicorn.setDataset(data);
Then, we call the classify(Instance) method on the model, in order to obtain the class value. The method returns the label index, as follows:
double result = tree.classifyInstance(myUnicorn); System.out.println(data.classAttribute().value((int) result));
This will provide the mammal class label as output.