在Ruby中使用lightgbm

LightGBM 是一个梯度Boosting框架

要求

gem install red-datasets
gem install lightgbm

执行

require 'lightgbm'
require 'datasets'

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

train_x = train_mnist.map { |r| r.pixels.map { |i| i / 255.0 } }
train_y = train_mnist.map(&:label)

test_x  = test_mnist.map { |r| r.pixels.map { |i| i / 255.0 } }
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)

booster.save_model("mnist_lightgbm.txt")
# booster = LightGBM::Booster.new(model_file: 'mnist_lightgbm.txt')

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

0.9727

在短时间内可以得到高精度 ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值