[RubyNLP |
RubyDataScience
|
RubyInterop]
Awesome Machine Learning with Ruby
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.
This curated list comprises
awesome
libraries, data sources, tutorials and presentations about
Machine Learning
utilizing the Ruby programming
language.
A lot of useful resources on this list come from the development by
The Ruby Science Foundation, our
contributors
and our own day to day work on various ML applications.
:sparkles: Every contribution is welcome!
Add links through pull requests or create an issue to start a discussion.
Follow us on Twitter and
please spread the word using the #RubyML
hash tag!
Contents
:sparkles: Tutorials
Please help us to fill out this section! :smiley: -
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
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
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
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](https://twitter.com/kojix2dayo)
[post]
-
2018
-
2017
-
2016
-
2015
-
2014
-
2013
-
2012
-
2011
-
2010
2009
-
2008
-
2007
Projects and Code Examples
Heroku buildpacks
Books, Blogs, Channels
License
Awesome ML with Ruby
by
Andrei Beliankou and
Contributors.
To the extent possible under law, the person who associated CC0 with
Awesome ML with Ruby
has waived all copyright and related or
neighboring rights to Awesome ML with Ruby
.
You should have received a copy of the CC0 legalcode along with this work.
If not, see
https://creativecommons.org/publicdomain/zero/1.0/.