I have a set of data points that belong to two classes - class A and class B. I know that a subset of the data points belong to class A. But I have no idea of the classification of the remaining data points.

This can arise in various settings. For example, if we ask people to respond with yes if they agree with something, then we cannot tell if those who don't respond do not agree with something or forget to respond.

I wonder if it is possible to build/train a classifier using random forest or logistic regression or some other techniques, and how I can approach the problem.

  • 1
    $\begingroup$ A generative model may be useful in this scenario. Note that to train a generative model you only need positive (foreground) samples. So, you can train a generative model to have high probability on people who you know responded "yes". $\endgroup$ – Sobi Jan 15 '16 at 20:55
  • $\begingroup$ Can you explain a bit on why I only need positive samples to train a generative model? Isn't naive Bayes classifier a generative model? I don't see how I can train it with foreground samples. $\endgroup$ – Tom Bennett Jan 17 '16 at 4:38

The term that you want to search for is "semi-supervised learning." Here's the wikipedia link, for convenience.

In a nutshell, you should think of this as "clustering with hints." You start with the labeled points, and get a sense of what they look like -- then you can make a good guess that other points that look like them also have that label, and finally, that points that don't look like them are labeled differently.

As always, there are lots and lots of tricks and theories and variations that go with this -- but given the breadth of your question, I think this will get you started in the right direction. Come back when your first results come through!


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.