Courses & TutorialsProgramming

Awesome Machine Learning With Ruby – Massive Collection of Resources

Spread the love

Curated List of Ruby Machine Learning Links and Resources

Machine Learning is a field of Computational Science
often nested under AI research – with many practical
applications due to the ability of resulting algorithms to
systematically implement a specific solution without explicit
programmer’s instructions. Obviously many algorithms need a definition
of features to look at or a biggish training set of data to derive the
solution from.

A lot of useful resources on this list come from the development by
The Ruby Science Foundation.


✨ Tutorials

Please help us to fill out this section! 😃

Machine Learning Libraries

Machine Learning algorithms in pure Ruby or written in other
programming languages with appropriate bindings for Ruby.


  • weka
    JRuby bindings for Weka, different ML algorithms implemented through Weka.
  • ai4r
    Artificial Intelligence for Ruby.
  • classifier-reborn
    General classifier module to allow Bayesian and other types of classifications.
    [dep: GLS]
  • scoruby
    Ruby scoring API for PMML (Predictive Model Markup Language).
  • rblearn – Feature Extraction and Crossvalidation library.
  • data_modeler
    Model your data with machine learning. Ample test coverage, examples to start fast, complete documentation. Production ready since 1.0.0.
  • shogun – Polyfunctional and mature
    machine learning toolbox with Ruby bindings.
  • aws-sdk-machinelearning
    Machine Learning API of the Amazon Web Services.
  • azure_mgmt_machine_learning
    Machine Learning API of the Microsoft Azure.
  • machine_learning_workbench
    Growing machine learning framework written in pure Ruby, high performance computing using
    Numo, CUDA bindings through Cumo.
    Currently implementating neural networks, evolutionary strategies, vector quantization, and plenty of
    examples and utilities.
  • Deep NeuroEvolution
    Experimental setup based on the machine_learning_workbench
    towards searching for deep neural networks (rather than training) using evolutionary algorithms. Applications to the
    OpenAI Gym using PyCall.
  • rumale
    Machine Learninig toolkit in Ruby with wide range of implemented algorithms
    (SVM, Logistic Regression, Linear Regression, Random Forest etc.) and
    interfaces similar to Scikit-Learn in Python.
  • eps – Bayesian Classification and Linear Regression with exports
    using PMML and an alternative backend using GSL.

Neural networks

  • neural-net-ruby
    Neural network written in Ruby.
  • ruby-fann
    Ruby bindings to the Fast Artificial Neural Network Library (FANN).
  • cerebrum
    Experimental implementation for Artificial Neural Networks in Ruby.
  • tlearn-rb
    Recurrent Neural Network library for Ruby.
  • brains
    Feed-forward neural networks for JRuby based on
  • machine_learning_workbench
    Framework including pure-Ruby implementation of both feed-forward and recurrent neural networks
    (fully connected). Training available using neuroevolution (Natural Evolution Strategies algorithms).
  • rann
    Flexible Ruby ANN implementation with backprop (through-time, for recurrent
    nets), gradient checking, adagrad, and parallel batch execution.

Deep learning

Kernel methods

Evolutionary algorithms

  • machine_learning_workbench
    Framework including pure-Ruby implementations of Natural Evolution Strategy algorithms
    (black-box optimization), specifically Exponential NES (XNES),
    Separable NES (sNES), Block-Diagonal NES (BDNES) and more.
    Applications include neural network search/training (neuroevolution).
  • simple_ga
    Simplest Genetic Algorithms implementation in Ruby.

Bayesian methods

  • linnaeus
    Redis-backed Bayesian classifier.
  • naive_bayes
    Simple Naive Bayes classifier.
  • nbayes
    Full-featured, Ruby implementation of Naive Bayes.

Decision trees


  • flann
    Fast Library for Approximate Nearest Neighbors.
  • kmeans-clusterer
    k-means clustering in Ruby.
  • k_means
    Attempting to build a fast, memory efficient K-Means program.
  • knn
    Simple K Nearest Neighbour Algorithm.
  • annoy-rb
    bindings for the Annoy (Approximate Nearest Neighbors Oh Yeah).

Linear classifiers

  • liblinear-ruby-swig
    Ruby interface to LIBLINEAR (much more efficient than LIBSVM for text classification).
  • liblinear-ruby
    Ruby interface to LIBLINEAR using SWIG.

Statistical models

  • rtimbl
    Memory based learners from the Timbl framework.
  • lda-ruby
    Ruby implementation of the LDA
    (Latent Dirichlet Allocation) for automatic Topic Modelling and Document Clustering.
  • maxent_string_classifier
    JRuby maximum entropy classifier for string data, based on the OpenNLP Maxent framework.
  • omnicat
    Generalized rack framework for text classifications.
  • omnicat-bayes
    Naive Bayes text classification implementation as an OmniCat classifier strategy.
    [dep: bundled]

Gradient boosting

Applications of machine learning

  • phashion
    Ruby wrapper around pHash, the perceptual hash library for detecting duplicate multimedia files.
    [ImageMagick | libjpeg]

Data structures

If you’re going to implement your own ML algorithms you’re probably interested
in storing your feature sets efficiently. Look for appropriate
data structures
in our Data Science with Ruby list.

Data visualization

Please refer to the Data Visualization
section on the Data Science with Ruby list.

Articles, Posts, Talks, and Presentations

Projects and Code Examples

  • Wine Clustering
    Wine quality estimations clustered with different algorithms.
  • simple_ga
    Basic (working) demo of Genetic Algorithms in Ruby.

Heroku buildpacks

Books, Blogs, Channels


Related Resources

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button