Could any one help me know about different approaches, methods or algorithms to build a model only with positive responses.

Let's assume we have a set of customers with a 'positive' behaviour. We want to find customers with a similar profile in the database and that are more likely to have this positive behaviour in the future. This can't be modeled with 0/1 target variable because there's not a clear definition of a 'negative' behaviour.

It looks like a look-alike modeling. However I think that look-alike modeling assumes knowing the response (0/1) for the given set of people (treatment group) and finding similar people in the control group to predict their responses.

Thanks in advance of your response!



1 Answer 1


This sounds like a one-class or unary classification problem where you can build a model of normality using the class that you have.

Take a look at novelty and outlier detection documentation for scikit learn. They discuss the one-class SVM there, which attempts to model the decision boundary given the observations that you have. The example that is implemented is pretty straight forward. Sadly, this implementation does not provide you with a probabilistic measure (although, there are papers on how to add this functionality).

Alternatively, you can consider an auto-associative neural network (replicator network).

There is a nice discussion on time-series anomaly detection here on DS.

  • $\begingroup$ Thanks for your answer! It's really helpful. That is what I'm trying to do: defining the boundary of my population so that I can detect similar (existing or new) individuals. However, these algorithms are made to detect outliers (rare events). So I'm not sure if they're efficient with much less rare events... $\endgroup$
    – Majdi
    Commented Sep 21, 2016 at 13:30
  • 1
    $\begingroup$ Yes, indeed. However, one can still see this approach as a novelty detection approach (with respect to your observations), instead of strictly an anomaly/rare events classifier. I agree with your assessment though, their efficacy will need to be evaluate/monitored carefully (particularly after they are deployed and are collecting/classifying new data). $\endgroup$
    – 0_0
    Commented Sep 21, 2016 at 13:42
  • $\begingroup$ The problem is that I want to detect similarity and not novelty. You can say that they are opposite (similarity = 1- novelty). I see this more accurately as detecting the main core of my target population. It may be by adding noise or by bootstaping to detect the most stable and robust boundary that detects for example 50% of my one class population. I don't know whether the one class svm does that.. $\endgroup$
    – Majdi
    Commented Sep 21, 2016 at 14:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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