A quasi-Newton optimization framework implemented in Python using the Numpy and the Scipy packages. This type of model depicts an extension of support vector machines to semi-supervised learning settings with both labeled and unlabeled patterns given in the training phase: In contrast to standard support vector machines (left), the model takes the additional unlabeled patterns (right, black points) into account to reveal more information about the structure of the data. The QN-S3VM framework can handle linear and non-linear kernels. In addition, the special case of sparse data (given a linear kernel) can also be handled efficiently.
The code is free for scientific use. In case you are planning to use (parts of) the software for commercial purposes, please contact me. If you use the code for scientific work, please use the reference(s) below to cite us. The source code can be downloaded here.
The code contains three examples for sparse and non-sparse data set instances. If you find any bugs or if you have problems with the code, feel free to contact us via e-mail.
August 2012: Initial Release
Fabian Gieseke, Antti Airola, Tapio Pahikkala, and Oliver Kramer. Fast and Simple Gradient-Based Optimization for Semi-Supervised Support Vector Machines. Neurocomputing (ICPRAM 2012 Special Issue) 123(10):23-32, 2014.
Fabian Gieseke, Antti Airola, Tapio Pahikkala, and Oliver Kramer. Sparse Quasi-Newton Optimization for Semi-Supervised Support Vector Machines. In Proceedings of the 1st International Conference on Pattern Recognition Applications and Methods (ICPRAM 2012). 2012, 45-54.
The implementation is free for non-commercial use only. It is not allowed to redistribute the software without permission of the authors. Further, the authors are not responsible for any implications that stem from its use.