yoshoku/rumale

Rumale is a machine learning library in Ruby

What it solves

Rumale brings a comprehensive suite of machine learning algorithms to the Ruby programming language. It provides a standardized way to implement ML models without needing to switch to Python, offering a familiar interface for those accustomed to Scikit-Learn.

How it works

Rumale implements a wide variety of ML algorithms using the Numo::NArray Alternative for typed arrays. It supports a broad range of techniques including:

  • Supervised Learning: Support Vector Machines, Logistic Regression, Decision Trees, Random Forests, and Gradient Tree Boosting.
  • Unsupervised Learning: K-Means, Gaussian Mixture Models, DBSCAN, and Spectral Clustering.
  • Dimensionality Reduction: PCA, t-SNE, and Non-negative Matrix Factorization.

To improve performance, it can integrate with OpenBLAS via Numo::Linalg Alternative for faster matrix operations and use the Parallel gem for multi-core processing in supported estimators.

Who it’s for

Ruby developers who want to integrate machine learning capabilities directly into their applications without leaving the Ruby ecosystem.

Highlights

  • Scikit-Learn Style API: Uses interfaces similar to the popular Python ML library.
  • Broad Algorithm Support: Includes everything from linear models and ensemble methods to clustering and manifold learning.
  • Performance Optimizations: Supports hardware acceleration via OpenBLAS and parallel processing.
  • Dataset Integration: Includes built-in functions to load LIBSVM format datasets.

Related

  • Project
  • Project
  • Project
  • Project
  • Project