LoginSignup
0
1

More than 1 year has passed since last update.

lightgbmのランキング学習で「lambdarank label (31) excel the max range」が出る場合の解決

Posted at

事象

lightgbmの'objective': 'lambdarank'でランキング学習しようとしたときにLightGBMError例外が発生してしまう問題

model = lgb.train(params, train_set=lgb_train, valid_sets=lgb_eval, verbose_eval=10)
# => LightGBMError: label (31) excel the max range -290077952

解決

事前にラベル(目的変数)をint64に変換しておく。
30を超える数の順位を使いたいときはparamsにlabel_gainを渡せば上限数を変えれるようだが、そもそもfloat型だとどうやっても上限数を超えてしまう模様。
pandas.DataFlame.astypeでint型に変換することで解決した。

y_train.dtype()
# => dtype: float64

y_train = test_set['target'].astype(int)
y_train.dtype()
# => dtype: int64

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1