As an example. If you are tying to classify humans from dogs. Is it possible to approach this problem by classifying different kinds of animals (birds, fish, reptiles, mammals, ...) or even smaller subsets (dogs, cats, whales, lions, ...)

Then when you try to classify a new data set, anything that did not fall into one of those classes can be considered a human.

If this is possible, are there any benefits into breaking a binary class problem into several classes (or perhaps labels)?

Benefits I am looking into are: accuracy/precision of the classifier, parallel learning.


If you try to get the best accuracy, etc... for a given question you should always learn on a training set that is labeled exactly according to your questions. You shouldn't expect to get better results if you are using more granular class labels. The classifier then would then try to pick up the differences in the classes and try to separate them apart. Since in practice your variables in the training set will not perfectly explain the more granular classification question you shouldn't expect to get a better answer for your less granular classification problem.

If you are not happy with the accuracy of your model you try the following instead:

  1. review the explanatory variables. Think about what might influence the classification problem. Maybe there us a clever way to construct new variables (from your existing ones) that helps. It's nowpossible to give a general advise on that since you have to consider the properties of your classifier
  2. if your class distribution is very skewed you might consider over/undersampling
  3. you might run more different classifiers and then classify based on the majority vote. Note that you will most likely sacrifice explainability of your model.

Also you seem to have some missunderstanding, when you write 'you would assign it to human if it doesn't fall into any of the granular classes'. Note that you always try to pick class labels covering the whole universe (all possible classes). This can be always defined as the complement of the other classes. Also you will have to have instances for each class in your training set.

  • $\begingroup$ Thank you, I'm just looking for different approaches to solve classification problems. The 3 tips that you gave me seems to be the way to go. At first I wanted to see if could translate a single-class classification into a multiple-class classification problem. But knowing that I need instances for each class might be a problem $\endgroup$ – apSTRK Feb 23 '15 at 21:14
  • $\begingroup$ The animal/human classification is just an example. My goal is to find a way to tweak or improve current malware classification methods for android $\endgroup$ – apSTRK Feb 23 '15 at 21:15
  • $\begingroup$ Ok, good luck! Feel free to ask again if you get stuck somewhere! $\endgroup$ – ee2Dev Feb 23 '15 at 21:16

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.