Description
This package provides a Ruby bindings to the LIBSVM library. SVM
is a machine learning and classification algorithm, and LIBSVM is a
popular free implementation of it, written by Chih-Chung Chang and
Chih-Jen Lin, of National Taiwan University, Taipei. See the book "Programming
Collective Intelligence," among others, for a usage example.
There is a JRuby implementation of this gem named
jrb-libsvm by
Andreas Eger.
Note: There exist some other Ruby bindings for LIBSVM. One is named
Ruby SVM, written by Rudi Cilibrasi. The other, more
actively developed one is libsvm-ruby-swig by Tom Zeng,
which is built using SWIG.
LIBSVM includes a number of command line tools for preprocessing
training data and finding parameters. These tools are not included in
this gem. You should install the original package if you need them.
It is helpful to consult the README of the LIBSVM package for
reference when configuring the training parameters.
Currently this package includes libsvm version 3.20.
rb-libsvm alternatives and similar gems
Based on the "Machine Learning" category.
Alternatively, view rb-libsvm alternatives based on common mentions on social networks and blogs.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of rb-libsvm or a related project?
README
rb-libsvm -- Ruby language bindings for LIBSVM
This package provides Ruby bindings to the LIBSVM library. SVM is a machine learning and classification algorithm, and LIBSVM is a popular free implementation of it, written by Chih-Chung Chang and Chih-Jen Lin, of National Taiwan University, Taipei. See the book "Programming Collective Intelligence," among others, for a usage example.
There is a JRuby implementation of this gem named jrb-libsvm by Andreas Eger.
Note: There exist some other Ruby bindings for LIBSVM. One is named Ruby SVM, written by Rudi Cilibrasi. The other, more actively developed one is libsvm-ruby-swig by Tom Zeng, which is built using SWIG.
LIBSVM includes a number of command line tools for preprocessing training data and finding parameters. These tools are not included in this gem. You should install the original package if you need them.
It is helpful to consult the README of the LIBSVM package for reference when configuring the training parameters.
Currently this package includes libsvm version 3.24.
Dependencies
None. LIBSVM is bundled with the project. Just install and go!
Installation
For building this gem from source on OS X (which is the default packaging) you will need to have Xcode installed, and from within Xcode you need to install the command line tools. Those contain the compiler which is necessary for the native code, and similar tools.
To install the gem run this command
gem install rb-libsvm
Usage
This is a short example of how to use the gem.
require 'libsvm'
# This library is namespaced.
problem = Libsvm::Problem.new
parameter = Libsvm::SvmParameter.new
parameter.cache_size = 1 # in megabytes
parameter.eps = 0.001
parameter.c = 10
examples = [ [1,0,1], [-1,0,-1] ].map {|ary| Libsvm::Node.features(ary) }
labels = [1, -1]
problem.set_examples(labels, examples)
model = Libsvm::Model.train(problem, parameter)
pred = model.predict(Libsvm::Node.features(1, 1, 1))
puts "Example [1, 1, 1] - Predicted #{pred}"
If you want to rely on Bundler for loading dependencies in a project,
(i.e. use Bundler.require
or use an environment that relies on it,
like Rails), then you will need to specify rb-libsvm in the Gemfile
like this:
gem 'rb-libsvm', require: 'libsvm'
This is because the loadable name (libsvm
) is different from the
gem's name (rb-libsvm
).
Release
The process to make a release of the gem package to rubygems.org has a number of steps.
- manually change the version in
lib/libsvm/version.rb
- clean, build, and run tests successfully
- update code and documentation
- push
- sign into https://rubygems.org/
- save API token from https://rubygems.org/profile/edit and store in
.gem/credentials
by runninggem signin
- perform actual release:
bundle exec rake release
Author
Written by C. Florian Ebeling.
Contributors
License
This software can be freely used under the terms of the MIT license, see file MIT-LICENSE.
This package includes the source of LIBSVM, which is free to use under the license in the file LIBSVM-LICENSE.
Posts about using SVMs with Ruby
https://www.practicalai.io/implementing-classification-using-a-svm-in-ruby/
http://neovintage.blogspot.com/2011/11/text-classification-using-support.html
http://www.igvita.com/2008/01/07/support-vector-machines-svm-in-ruby/
*Note that all licence references and agreements mentioned in the rb-libsvm README section above
are relevant to that project's source code only.