Skip to content

ayukat1016/lightgbm_sample

Repository files navigation

LightGBM予測モデル実装ハンドブック

書籍 LightGBM予測モデル実装ハンドブック のサポートサイトです。本書籍で使用するサンプルコードを提供します。

lightgbm_cover

章の構成

  • 第1章:予測モデルの概要
  • 第2章:回帰の予測モデル
  • 第3章:分類の予測モデル
  • 第4章:回帰の予測モデル改善
  • 第5章:LightGBMへの発展

正誤表

ページ 補足
p4 謝辞 株式会社ウェブフォーマ ー 株式会社ウェブファーマー 会社名の記載ミス
p17 上部 当月の月末までの取引量を 今月の月末までの取引量を 誤字
p60 回帰係数 $\mathbf{w}^{*T}=(w_{0}^{*},w_{1}^{*},\cdots ,w_{m}^{*})$ $\mathbf{w}^{*T}=(w_{1}^{*},w_{2}^{*},\cdots ,w_{m}^{*})$ 数式の誤記載
p112~232 SHAPの引数 feature_pertubation feature_perturbation Githubコードの2_4、3_3、4_3の引数は修正済み
p129 前処理後のincome件数内訳の実行結果 <=50K 24720、>50K 7841 <=50K 21999、>50K 7171 誤って前処理前の件数を記載
p306 中央 インデックスj関係は以下の関係になります。 インデックスjは以下の関係になります。 誤字
p340 1本目の木の可視化 figsize=(20,20) figsize=(20, 20) スペースを追加

エラー発生時の問い合わせ

サンプルコードの間違いや動作不具合は本リポジトリのIssuesに投稿してください。

動作不具合についての投稿では、以下を記載してください。

  • 実行プログラム名
  • エラーメッセージ
  • ライブラリのバージョン

その他問い合わせはメールアドレス [email protected] までお願いします。

ライブラリのバージョン

動作確認したライブラリのバージョンは執筆時点のGoogle Colaboratoryの最新バージョンになります。Colab環境のバージョンは定期的に更新するので、プログラム実行時にエラーが発生する場合、記載のバージョンに戻して実行してください。Dockerコンテナの環境は記載のバージョンでライブラリを固定してます。

  • Python:3.10.11
  • pandas:1.5.3
  • numpy:1.22.4
  • matplotlib:3.7.1
  • seaborn:0.12.2
  • scikit-learn:1.2.2
  • graphviz:0.20.1
  • xgboost:1.7.5
  • lightgbm:3.3.5
  • shap:0.41.0
  • optuna:3.1.1
  • plotly:5.13.1

Google Colaboratoryの実行環境

Google ColaboratoryはクラウドのJupyter Notebook環境を提供します。1.3節の手順を参考に初期設定して、Googleドライブにサンプルコードを格納して、Notebookを実行してください。

Dockerコンテナの実行環境

PCのDockerコンテナ環境でサンプルコードを実行できるようDockerfileを用意しました。以下の手順を参考に環境構築して、Jupyter LabのNotebookを実行してください。

  • 前提条件

    • Windows(WSL2)やMacなどコマンドラインの実行が可能なPC
    • Gitがインストール済み
    • Dockerがインストール済み
    • PyenvPoetryがインストール済み(ただし、ライブラリを変更しないのであればインストール不要。)
      • PyenvはPythonのバージョンを管理します。
      • Poetryはライブラリバージョンの依存関係を解決し、requirements.txtを出力します。requirements.txtはビルドで使用します。
  • コマンドラインでリポジトリをgit cloneし、ディレクトリlightgbm_sampleに移動します。

# リポジトリの取得
$ git clone https://github.com/ayukat1016/lightgbm_sample.git

# ディレクトリの移動
$ cd lightgbm_sample/

# ディレクトリの確認(`/xxx/repository`はユーザにより異なります。)
$ pwd
/home/xxx/repository/lightgbm_sample

# ファイルの確認
$ ls
Dockerfile  LICENSE  README.md  chapter2  chapter3  chapter4  chapter5  poetry.lock  pyproject.toml  requirements.txt
  • Dockerfileを指定して、imageをビルドします。
# ビルド
$ docker build --platform linux/amd64 -t lightgbm_sample:lightgbm_sample_1.0.0 -f Dockerfile .
  • imageを指定してコンテナを起動、コンテナ内でJupyter Labのコマンドを実行します。サンプルコードのNotebookは-vオプションでコンテナ内にマウントします。
# コンテナ起動+Jupyter Lab実行
$ docker run -it --rm --name ligthgbm_sample -v $PWD:/opt -p 8888:8888 lightgbm_sample:lightgbm_sample_1.0.0 jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.token=''
  • webブラウザのURL http://localhost:8888 にアクセスし、サンプルコードを実行します。

  • 利用終了時はコマンドラインで Ctrlキー + C を押下して、Jupyter Labを停止してください。このとき、コンテナは自動的に停止、削除されます。

Poetryを使用したPython実行環境

PCの仮想環境でサンプルコードを実行できるようpyproject.tomlを用意しました。以下の手順を参考に環境構築して、Jupyter LabのNotebookを実行してください。

  • 前提条件

    • Windows(WSL2)やMacなどコマンドラインの実行が可能なPC
    • Gitがインストール済み
    • Pyenvがインストール済み
    • Poetryがインストール済み
  • コマンドラインでリポジトリをgit cloneし、ディレクトリlightgbm_sampleに移動します。

# リポジトリの取得
$ git clone https://github.com/ayukat1016/lightgbm_sample.git

# ディレクトリの移動
$ cd lightgbm_sample/

# ディレクトリの確認(`/xxx/repository`はユーザにより異なります。)
$ pwd
/home/xxx/repository/lightgbm_sample

# ファイルの確認
$ ls
Dockerfile  LICENSE  README.md  chapter2  chapter3  chapter4  chapter5  poetry.lock  pyproject.toml  requirements.txt
  • PyenvでPythonのバージョンを指定します。
# Pythonのインストール
$ pyenv install 3.10.11

# バージョンの指定
$ pyenv local 3.10.11

# バージョンの確認
$ pyenv versions
  system
* 3.10.11
  • Poetryの仮想環境を構築し、仮想環境にpyproject.tomlで指定したライブラリをインストールします。
# 仮想環境の構築
$ poetry install

# 仮想環境の確認
$ poetry env list
lightgbm-sample-qPUWcycm-py3.10 (Activated)
  • 決定木の可視化に使用するGraphvizをインストールします。
# graphvizのインストール(実行時にsudoパスワードを入力)
$ sudo apt update
$ sudo apt install -y graphviz

# graphvizの確認
$ dot -V
dot - graphviz version 2.43.0 (0)
  • poetryの仮想環境で、Jupyter Labのコマンドを実行します。
# 仮想環境起動+Jupyter Lab実行
$ poetry run jupyter lab --allow-root --NotebookApp.token='' --port=8888
  • webブラウザのURL http://localhost:8888 にアクセスし、サンプルコードを実行します。

  • 利用終了時はコマンドラインで Ctrlキー + C を押下して、Jupyter Labを停止してください。

変更履歴

日付 変更内容
2023/06/17   初版 
2023/08/16   初版の正誤表を追加  
2024/03/19   Dockerコンテナの実行環境を追加
2024/05/05   正誤表の更新
2024/05/07   Poetryを使用したPython実行環境を追加
2024/07/17   記載の見直し
2024/08/01   Issues#9,#10を正誤表に反映

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published