Why do we need samples of both classes for the training of binary classification algorithms, if one-class algorithms can do the job with only samples from one class?

I know that one-class algorithms (like one-class svm) were proposed with the absence of negative data in mind and that they seek to find decision boundaries that separate positive samples (A) from negative ones (Not A).

Hence the traditional binary classification problem (between (A) and (B) for example) can be formulated as a classification of (A) and (not A = B). Is it about better classification results or am I missing something? Thank you in advance


Binary classification is needed when requirement is to capture data into two classes. if you can't capture data in two classes where you need only one you go for One-class. you can check this link for better explanation http://rvlasveld.github.io/blog/2013/07/12/introduction-to-one-class-support-vector-machines/

If you take binary classification, svm tries to find best possible space between A and B. If there is only one class A model tries to create a boundary around it and classify. Take for example patient disease classification: For +ve some symptoms t1, t2, t3, t4, t5 for -ve he has t1, t2, t7. in the above case it is difficult to classify using one class because model classifies patient having t1, t2 as +ve because of proximity to +ve class. The second label gives you more info for better classification.


I think this is what you are looking for:

A binary classifier is used to classify an instance into one of two classes and the reason behind using binary classifier for one class problem is that either an instance belong to that class or not. For example, if your problem is to predict whether there will be rain tomorrow. So either there will be rain tomorrow or not. Another example is that Given an image, your classifier task to precit whether it is male or not. Though you are only concern about one class which is male but still there are two classes i.e. male or not(male).

So, when training your classifier for one class, your data should be instances of that class plus instances of not that class. So, your classifier is capable of accurately classifying an instance whether it belongs to that class or not.

If you want to know anything else, let me know. I'll be glad to help you.

  • $\begingroup$ Hi Faizan Khan.Thank you for your response. If I use your example, one-class will classify male or not(male) which is equal to female if not(male). Hence, we can train our model with only data from one class. Why are we going to bother to find balanced data for both classes if we can only get the results with one class?? $\endgroup$ – Nad14 Sep 10 '19 at 15:10
  • $\begingroup$ well, in this case, you will have a class imbalance problem. What if you come across some certain image which has actually female in them but they have some features related to male. In that case, your model is likely to classify them into the male category although they are female. You should look into the class imbalance problem for further clarification. $\endgroup$ – Faizan Khan Sep 10 '19 at 15:16
  • $\begingroup$ I see what you mean. However, in this case, one-class classifiers always suffer from imbalance... $\endgroup$ – Nad14 Sep 10 '19 at 15:57
  • $\begingroup$ Just to avoid imbalance, therefore instances of all classes are used. In one class problem, you should have instances of that class and instances of not that class. So, this way class imbalance won't occur. $\endgroup$ – Faizan Khan Sep 10 '19 at 16:07
  • $\begingroup$ let me know if you need any other help in this regard. And if you find the answer useful, please consider accepting the answer by clicking on the tick mark(grey colored) on the left of the answer. And also upvote the answer. Thanks $\endgroup$ – Faizan Khan Sep 10 '19 at 16:10

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.