Popularity
1.0
Growing
Activity
9.0
Declining
33
2
1

Monthly Downloads: 635
Programming language: Ruby
License: MIT License
Tags: Machine Learning     Scientific     GBM    
Latest version: v0.1.7

LightGBM alternatives and similar gems

Based on the "Machine Learning" category

Do you think we are missing an alternative of LightGBM or a related project?

Add another 'Machine Learning' Gem

README

LightGBM

LightGBM - the high performance machine learning library - for Ruby

:fire: Uses the C API for blazing performance

Build Status

Installation

Add this line to your application’s Gemfile:

gem 'lightgbm'

On Mac, also install OpenMP:

brew install libomp

Getting Started

This library follows the Python API. A few differences are:

  • The get_ and set_ prefixes are removed from methods
  • The default verbosity is -1
  • With the cv method, stratified is set to false

Some methods and options are also missing at the moment. PRs welcome!

Training API

Prep your data

x = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [1, 2, 3, 4]

Train a model

params = {objective: "regression"}
train_set = LightGBM::Dataset.new(x, label: y)
booster = LightGBM.train(params, train_set)

Predict

booster.predict(x)

Save the model to a file

booster.save_model("model.txt")

Load the model from a file

booster = LightGBM::Booster.new(model_file: "model.txt")

Get the importance of features

booster.feature_importance

Early stopping

LightGBM.train(params, train_set, valid_sets: [train_set, test_set], early_stopping_rounds: 5)

CV

LightGBM.cv(params, train_set, nfold: 5, verbose_eval: true)

Scikit-Learn API

Prep your data

x = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [1, 2, 3, 4]

Train a model

model = LightGBM::Regressor.new
model.fit(x, y)

For classification, use LightGBM::Classifier

Predict

model.predict(x)

For classification, use predict_proba for probabilities

Save the model to a file

model.save_model("model.txt")

Load the model from a file

model.load_model("model.txt")

Get the importance of features

model.feature_importances

Early stopping

model.fit(x, y, eval_set: [[x_test, y_test]], early_stopping_rounds: 5)

Data

Data can be an array of arrays

[[1, 2, 3], [4, 5, 6]]

Or a Daru data frame

Daru::DataFrame.from_csv("houses.csv")

Or a Numo NArray

Numo::DFloat.new(3, 2).seq

Helpful Resources

  • Xgb - XGBoost for Ruby
  • Eps - Machine Learning for Ruby

Credits

Thanks to the xgboost gem for serving as an initial reference.

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/lightgbm.git
cd lightgbm
bundle install
bundle exec rake vendor:all
bundle exec rake test