DEV Community

kojix2
kojix2

Posted on

LightGBM with Ruby

LightGBM is a powerful gradient boosting framework.

Requirements

  • LightGBM (Ruby binding)
    • lib_lightgbm.so, lib_lightgbm.dylib, lib_lightgbm.dll are included in Gem.
  • Red Datasets
    • MNIST datasets.
gem install red-datasets
gem install lightgbm
Enter fullscreen mode Exit fullscreen mode

Run

require 'lightgbm'
require 'datasets'

train_mnist = Datasets::MNIST.new(type: :train)
test_mnist  = Datasets::MNIST.new(type: :test)

train_x = train_mnist.map(&:pixels)
train_y = train_mnist.map(&:label)

test_x  = test_mnist.map(&:pixels)
test_y  = test_mnist.map(&:label)

params = {
  task: :train,
  boosting_type: :gbdt,
  objective: :multiclass,
  num_class: 10
}

train_set = LightGBM::Dataset.new(train_x, label: train_y)
booster = LightGBM.train(params, train_set)

result = booster.predict(test_x)
result.map! { |i| i.index(i.max) }
accuracy = test_y.zip(result).count { |i, j| i == j } / test_y.size.to_f
puts accuracy
Enter fullscreen mode Exit fullscreen mode

0.9727

Good! 🌟

Top comments (0)