Let's say I want to build a boolean classifier to classify an animal as 'dog' vs 'cat' based on some of its attributes. I can do the standard machine learning approach of building a training set of instances with a known label, training a classifier, and using that for prediction. All well and good.

But now suppose that I have additional information about each training instance: not only do I know whether it is a cat or dog, I also know the breed of each instance (e.g., dog - poodle; cat - Persian). In other words, I have finer-grained labels than needed. Is there a way to make good use of this extra information about the training instances, to build a more accurate classifier?

Obviously, I could ignore the information about the breeds of the training instances and just train a boolean classifier as usual. But this is throwing away information, which seems like it might be wasteful.

Alternatively, I could train a classifier that predicts both species (dog vs cat) and breed, based on this training set. Then, when I see any new animal, I could apply the classifier, ignore the breed part of its output, and use just the species part. This seems like a natural strategy, though it's a bit trivial.

Are there any other, more sophisticated strategies I'm overlooking for how to make use of the additional labels for the training instances?

  • $\begingroup$ My guess is that in most cases, the fine-grained classes won't help. But I could be wrong. $\endgroup$ – Kodiologist Jan 4 '17 at 17:45
  • $\begingroup$ How many level of breeds are there? You could add it as a predictor in your model and see if it increases the accuracy. $\endgroup$ – user9292 Jan 4 '17 at 23:11
  • $\begingroup$ @user9292, To make sure I didn't inadvertently cause some confusion: The breeds are only provided for training instances. For test instances, I don't know their species or breed. So I can't use the breed as another input to the classifier, since the breed won't be known for test instances. Was my question confusing? Can you suggest any way I can make it clearer? Or did I misunderstand you? $\endgroup$ – D.W. Jan 4 '17 at 23:21
  • $\begingroup$ That's more clear to me. There are many ways you can play with the data. For instance, using the training set try to build a model to predict the breed (I.e., breed ~ x1+x2+x3+...), Then use the predicted value as an input to predict the animal. $\endgroup$ – user9292 Jan 5 '17 at 4:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.