0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OptunaでLightGBMを使おうとしたらmodule 'optuna.integration.lightgbm' has no attribute 'train'がでたので対処する。

Posted at

はじめに

データ分析の勉強をおろそかにしていたため、コンペを通して実践的に学ぼうと取り組んでいます。
そんな中、LightGBMOptunaでハイパーパラメータチューニングしようとしたときに問題が起きたので、この記事を書きました。

また、このエラーがほぼネットに解決法がなかったです。しかし、起きることがありそうなので早く解決する手助けになればと思います。

環境

  • Windows
  • Docker
  • Python3
  • JupyterNotebook

今回の環境はこちらを参考にほぼ同じように作成しています。

あとで詳細は書きますが、これが原因となっていました。

問題

JupyterNotebookで以下のコードでハイパラチューニングをしました。

model.py
import lightgbm as lgb
import lightgbm
import optuna.integration.lightgbm as lgbo


trains = lgb.Dataset(train_x, train_y)
valids = lgb.Dataset(val_x, val_y)

params = {'objective': 'regression',
          'metric': 'mae'
         } 

gbm_o = lgbo.train(params,
                    trains,
                    valid_sets=valids,
                    early_stopping_rounds=100,
                    num_boost_round = 1000,
                    verbose_eval=200,)

すると以下のエラーが出ます。

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-47-4c0b4b7f1bdb> in <module>()
      7 import optuna.integration.lightgbm as lgbo
      8 
----> 9 opt=lgbo.train(
     10     opt_params,
     11     trains,

AttributeError: module 'optuna.integration.lightgbm' has no attribute 'train'

optuna.integration.lightgbmにtrainはないよとエラーになっています。
ライブラリは読み込まれているようなので、なぜだろうとなりました。

解決方法

DOckerfileで利用しているイメージが古いのが原因でした。
いまのOptunaで利用されているライブラリを利用しているので、昔のイメージ(ライブラリ)では対応していませんでした。

こちらを全く同じく利用していたため、古いimageでバージョンが固定されています。

# kaggleのpython環境をベースにする
FROM gcr.io/kaggle-images/python:v56
(以下省略)

ですので、最新版にDockerfileで利用しているイメージを変更します。

# kaggleのpython環境をベースにする
FROM gcr.io/kaggle-images/python:latest
(以下省略)

こちらで無事動くようになりました。

おわりに

データ分析をいざやってみようとするとわからないことばかり(知識ばかり)で、実際やってみるとやることはわかるがコードを動かせないという壁に当たってしまいます。

これは毎日ひたすらやっていくしかないなと思いました。
がんばります。

参考サイト

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?