Awesome Machine Learning With Ruby – Massive Collection of Resources
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.
Contents
- ✨ Tutorials
- Machine Learning Libraries
- Applications of machine learning
- Data structures
- Data visualization
- Articles, Posts, Talks, and Presentations
- Projects and Code Examples
- Heroku buildpacks
- Books, Blogs, Channels
- Community
- Related Resources
✨ Tutorials
Please help us to fill out this section! 😃
- Ruby neural networks
- How to implement linear regression in Ruby
[code] - How to implement classification using logistic regression in Ruby
- How to implement simple binary classification using a Neural Network in Ruby
[code] - How to implement classification using a SVM in Ruby
[code] - Unsupervised learning using k-means clustering in Ruby
[code] - Teaching an AI to play a simple game using Q-Learning in Ruby
[code] - Teaching a Neural Network to play a game using Q-Learning in Ruby
[code] - Using the Python scikit-learn machine learning library in Ruby using PyCall
[code] - How to evolve neural networks in Ruby using the Machine Learning Workbench
Machine Learning Libraries
Machine Learning algorithms in pure Ruby or written in other
programming languages with appropriate bindings for Ruby.
Frameworks
- 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
brains. - 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
- tensor_stream –
Ground-up and standalone reimplementation of TensorFlow for Ruby. - red-chainer – Deep learning framework for Ruby.
- tensorflow – Ruby bindings for TensorFlow.
- ruby-dnn – Simple deep learning for Ruby.
- torch-rb – Ruby bindings for LibTorch
using rice. - mxnet – Ruby bindings for mxnet.
Kernel methods
- rb-libsvm –
Support Vector Machines with Ruby and the LIBSVM library.
[dep: bundled]
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
- decisiontree –
Decision Tree ID3 Algorithm in pure Ruby.
[dep: GraphViz |
post].
Clustering
- flann –
Fast Library for Approximate Nearest Neighbors.
[flann] - 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
- xgboost —
Ruby bindings for XGBoost.
[dep: XGBoost] - xgb —
Ruby bindings for XGBoost.
[dep: XGBoost] - lightgbm —
Ruby bindings for LightGBM.
[dep: LightGBM]
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
- 2019
- TensorStream: Bringing Machine Learning to Ruby by Joseph Emmanuel Dayo
[post] - Easy machine learning with Ruby using SVMKit by @kojix
[post]
- TensorStream: Bringing Machine Learning to Ruby by Joseph Emmanuel Dayo
- 2018
- Deep Learning Programming on Ruby by Kenta Murata
& Yusaku Hatanaka
[slides |
page] - How to use trained Keras and TensorFlow machine learning models within Ruby on Rails by Denis Sellu
[post]
- Deep Learning Programming on Ruby by Kenta Murata
- 2017
- Scientific Computing on JRuby by Prasun Anand
[slides |
video |
slides |
slides] - Is it Food? An Introduction to Machine Learning by Matthew Mongeau
[video |
slides] - Bayes is BAE by Richard Schneeman
[video |
slides] - Ruby Roundtable: Machine Learning in Ruby by RubyThursday
[video]
- Scientific Computing on JRuby by Prasun Anand
- 2016
- Practical Machine Learning with Ruby by Jordan Hudgens
[tutorial] - Deep Learning: An Introduction for Ruby Developers by Geoffrey Litt
[slides] - How I made a pure-Ruby word2vec program more than 3x faster by Kei Sawada
[slides] - Dōmo arigatō, Mr. Roboto: Machine Learning with Ruby by Eric Weinstein
[slides |
video] - Building a Recommendation Engine with Machine Learning Techniques by Brian Sam-Bodden
[video] - ✨ SciRuby Machine Learning: Current Status and Future by Kenta Murata
[slides |
video: jp] - Ruby Roundtable: Intro to Tensorflow by RubyThursday
[video]
- Practical Machine Learning with Ruby by Jordan Hudgens
- 2015
- Machine Learning made simple with Ruby by Lorenzo Masini
[post] - Using Ruby Machine Learning to Find Paris Hilton Quotes by Rick Carlino
[tutorial]
- Machine Learning made simple with Ruby by Lorenzo Masini
- 2014
- Test Driven Neural Networks by Matthew Kirk
[video] - Five machine learning techniques that you can use in your Ruby apps today by Benjamin Curtis
[video |
slides] - Machine Learning for Fun and Profit by John Paul Ashenfelter
[video]
- Test Driven Neural Networks by Matthew Kirk
- 2013
- Sentiment Analysis using Support Vector Machines in Ruby by Matthew Kirk
[video |
code] - Recommender Systems with Ruby by Marcel Caraciolo
[slides] - Detecting Faces with Ruby: FFI in a Nutshell by Marc Berszick
[post]
- Sentiment Analysis using Support Vector Machines in Ruby by Matthew Kirk
- 2012
- Machine Learning with Ruby, Part One by Vasily Vasinov
[tutorial] - Recurrent Neural Networks in Ruby by Joseph Wilk
[post] - Recommendation Engines using Machine Learning, and JRuby by Matthew Kirk
[video] - Practical Machine Learning and Rails by Andrew Cantino
and Ryan Stout
[video]
- Machine Learning with Ruby, Part One by Vasily Vasinov
- 2011
- Clustering in Ruby by Colin Drake
[post] - Text Classification using Support Vector Machines in Ruby by Rimas Silkaitis
[post]
- Clustering in Ruby by Colin Drake
- 2010
- bayes_motel – Bayesian classification for Ruby by Mike Perham
[post] - Intelligent Ruby: Getting Started with Machine Learning by Ilya Grigorik
[video]
- bayes_motel – Bayesian classification for Ruby by Mike Perham
- 2009
- 2008
- Support Vector Machines (SVM) in Ruby by Ilya Grigorik
[post]
- Support Vector Machines (SVM) in Ruby by Ilya Grigorik
- 2007
- Decision Tree Learning in Ruby by Ilya Grigorik
[post]
- Decision Tree Learning in Ruby by Ilya Grigorik
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
- Kirk, Matthew.
Thoughtful Machine Learning: A Test-Driven Approach. O’Reilly, 2014.
[Amazon |
code] - Practical Artificial Intelligence –
Blog about Artificial Intelligence and Machine Learning with tutorials and code samples in Ruby.
Community
Related Resources
LightGBM
XGBoost
[GSL (GNU Scientific Library)][gls]
OpenCV
Graphviz
Gnuplot
X11/XQuartz
ImageMagick
R
Octave- scikit-learn algorithm cheatsheet
- Awesome Ruby –
Among other awesome items a short list of NLP related projects. - Ruby NLP –
State-of-Art collection of Ruby libraries for NLP. - Speech and Natural Language Processing –
General List of NLP related resources (mostly not for Ruby programmers). - Scientific Ruby –
Linear Algebra, Visualization and Scientific Computing for Ruby. - iRuby – IRuby kernel for Jupyter (formerly IPython).
- Kiba –
Lightweight ETL (Extract, Transform, Load) pipeline. - rb-gsl –
Ruby interface to the GNU Scientific Library. - The Definitive Guide to Ruby’s C API –
Modern Reference and Tutorial on Embedding and Extending Ruby using C programming language.