I have a m x k User-feature matrix (m >> k) obtained by factorizing an original User-websites matrix (m x n) that has #page views as entries. Additionally, there are users (say r) who have been labeled as being part of a particular group. I'm now looking to find a way to see who among the remaining (m-r) users is 'similar' to these pre-classified r users. This seems like a possible scenario for a one-class SVM, but I'd like to know if there are any other methods that I should consider.

On a related note, I'm not sure if there is a way I can fit a multivariate distribution to the pre-classified r users, and then for each of the (m-r) users, get a probability of being part of that distribution. One could then use some kind of a cutoff to decide the 'similar' users.

I'm using R for my analysis, so any pointers on specific packages to consider would be helpful as well.

Thanks in advance!


This is called learning from positive and unlabeled data (PU learning for short). Positives in this case refer to the labeled users, everyone else being unlabeled.

I strongly advise against using one-class SVM for such problems as it is known to be suboptimal. The unlabeled data can provide valuable information regarding the structure of the positive class vis-a-vis the rest, which is ignored entirely by one-class SVM. An additional problem with one-class SVM in this setting is its sensitivity to false positives, which do exist in most practical applications.

I work on this problem myself. A series of techniques exist to tackle such issues, such as biased SVM, bagging SVM and (recently) RESVM. I suggest reading my paper for a simple approach (currently under review). In the paper you can also find references to the main existing approaches, so it's good to get started.


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.