Machine Learning with Swift
上QQ阅读APP看书,第一时间看更新

Making predictions

We use the predict function to get outcome labels for two samples. The first one is light-black, fluffy creature, 24 meters long. The second one is purple polka dot, non-fluffy, and 34 meters long. If you already don't remember the meaning of each feature, consult the feature_names variable:

In []: 
samples = [[24,1,0,1,0,0], [34,0,0,0,1,0]] 
tree_model.predict(samples) 
Out[]: 
array([u'platyhog', u'rabbosaurus'], dtype=object) 

Our model predicted platyhog for the first sample, and rabbosaurus for the second one. A decision tree can also provide probabilistic output (how sure it is about the prediction):

In []: 
tree_model.predict_proba(samples) 
Out[]: 
array([[ 1.,  0.], 
       [ 0.,  1.]]) 

The array contains two nested arrays, one for every prediction. Elements in the nested arrays are probabilities of the sample belonging to the corresponding class. This means that our model is 100% sure that the first sample belongs to the first class, and 100% sure that the second sample belongs to the second class.

But how sure can we be about these predictions? We have a whole set of different tools to evaluate the model's accuracy, and the simplest one is the built-in scoring functions.