Final edit with all resources updated:

For a project, I am applying machine learning algorithms for classification.

Challenge: Quite limited labeled data and much more unlabeled data.


  1. Apply semi-supervised classification
  2. Apply a somehow semi-supervised labeling process (known as active learning)

I've found a lot of information from research papers, like applying EM, Transductive SVM or S3VM (Semi Supervised SVM), or somehow using LDA, etc. Even there are few books on this topic.

Question: Where are the implementations and practical sources?

Final update (based on helps provided by mpiktas, bayer, and Dikran Marsupial)

Semi-supervised learning:

Active learning:

  • Dualist: an implementation of active learning with source code on text classification
  • This webpage serves a wonderful overview of active learning.
  • An experimental Design workshop: here.

Deep learning:

  • $\begingroup$ There is a R package RTextTools. If I am not mistaken it implements several of the methods you mention. $\endgroup$ – mpiktas Oct 7 '11 at 12:20
  • $\begingroup$ Hi mpiktas, thanks for your kind help. It is an interesting toolkit. However, it seems to be only dealing with supervised learning, as I read "TextTools is a free, open source machine learning package for automatic text classification that makes it simple for both novice and advanced users to get started with supervised learning. The package includes nine algorithms for ensemble classification (svm, slda, boosting, bagging, random forests, glmnet, decision trees, neural networks, maximum entropy)" $\endgroup$ – Flake Oct 7 '11 at 12:27
  • $\begingroup$ Ok, here is another try: Weka. The authors have written a book, and its table of contents mentions semi-supervised learning. I sincerely hope that the chapter does not end with "... unfortunately none of these algorithms are implemented in Weka" :) $\endgroup$ – mpiktas Oct 7 '11 at 12:33
  • $\begingroup$ Drat, I got the older version of the book! Thanks a lot for pointing out this source! $\endgroup$ – Flake Oct 7 '11 at 12:46

It seems as if deep learning might be very interesting for you. This is a very recent field of deep connectionist models which are pretrained in an unsupervised way and fine tuned afterwards with supervision. The fine tuning requires a much less samples than the pretraining.

To wet your tongue, I recommend [Semantig Hashing Salakhutdinov, Hinton. Have a look at the codes this finds for distinct documents of the Reuters corpus: (unsupervised!)

enter image description here

If you need some code implemented, check out deeplearning.net. I don't believe there are out of the box solutions, though.

  • $\begingroup$ This is quite interesting and new information for me. Of course out of the box implementations would be better, but this really helps me to know something closer to what I want. Thanks. $\endgroup$ – Flake Oct 7 '11 at 19:36

Isabelle Guyon (and colleagues) organised a challenge on active learning a while back, the proceedings are published here (open access). This has the advantage of being quite practical and you can directly compare the performances of different approaches under an unbiased (in a colloquial sense) protocol (random selection of patterns is surprisingly hard to beat).


Here is a nice list of libraries.



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.