Pythonでデータ分析をするときに機械学習モデルを使用します。
テーブルデータを用いた教師あり学習でベーシックで安定した「LightGBM」を使用した時に、途中でエラーが発生してうまくいかないことがあります。
今回ははまった時の解決した事例を紹介します。
書いているのはこんな人
広告・マーケティング領域のフォトグラファーをしています。 3DCG動画の制作でソフトのカスタマイズをしようとPythonを独学ではじめまして、データ分析・機械学習に興味をもったらいつのまにかtensorflow, pytorchまで使うようになりました。
データーサイエンスとは
AIモデルや生成AI・ディープラーニングという言葉が最近注目されています。 すでにChat-GPTや顔認識システムなど業務で利用したりして、だいぶ浸透していると思います。 それと同様にデータサイエンスも機械学習・ディープラーニング やマーケティング・経営企画などさまざまな分野でデータを活用して業務やサービスを分析して課題解決に向け視覚化や予測・判断に利活用することとして定着してきたようにあります。
私がデータ分析をはじめたきっかけ
3DCGでバーチャルヒューマンを作成して人間と同じように動き・話し・体験できるしくみを作ろうとはじめて、フォトリアル なバーチャルヒューマンモデルを作成できるようになりました。 ここから動きや会話を実装しはじめて既存のものではうまくいかないことが多くなりPythonプログラミングを学びベースのプログラミングをカスタマイズすることと自動化を進めるようになりました。 pythonを学んでいくうちにtensorflowやpytorchなど機械学習・ディープラーニング触れるようになり利用していくとベースで微分積分の知識やデータ分析の技術が必要になってくることがわかりました。 もともと高校の途中まで理数系だったのでデータ分析・予測がおもしろくなり始まりました。
LightLGBMが優れている点
・モデルの精度が高い
・処理が速い
・欠損値があっても処理ができる
・特出点の影響を受けにくい
エラー内容
具体的なエラー内容は状況によって異なりますが、以下のエラーが出ました。
LGMBClassifier.fit() got an unexpected keyword argument 'early_stopping_rounds'
このエラーは、early_stopping_roundsのコードの部分に原因の可能性があります。
解決方法
インプットデータの見直しやインポートの不足など検証しましたが原因がわからず、LightGBMのホームページを調べてみるとどうやら仕様が数年前に変更されて、
「early_stopping_roundsは徐々に使えなくなるから変更するように」と書いてありました。
そこで以下のようにearly_stoppingの行とverboseの行を
callback=[lgb.early_stopping()の形に変更して解決できました。
まとめ
データ分析LightGBMのエラーは、モデルの仕様変更によるコードの記述変更で解決できる場合があります。 この情報がお役に立てば幸いです。
ご相談や制作依頼などお気軽にお問合せください!
TOP | ABOUT | 人物写真 | 静物写真 |
バーチャルヒューマン | 3DCG/VFX映像制作 | 建築写真 | コンサルティング |