書籍 LightGBM予測モデル実装ハンドブック のサポートサイトです。本書籍で使用するサンプルコードを提供します。
- 第1章:予測モデルの概要
- 第2章:回帰の予測モデル
- 第3章:分類の予測モデル
- 第4章:回帰の予測モデル改善
- 第5章:LightGBMへの発展
コードは章に合わせて、chapterごとに分けて管理します。なお、.ipynb_checkpoints や chapter5/exoTrain.csv は .gitignore により Git 管理から除外しています。
| No | ページ | 誤 | 正 | 補足 |
|---|---|---|---|---|
| 1 | p4 謝辞 | 株式会社ウェブフォーマ ー | 株式会社ウェブファーマー | 会社名の記載ミス |
| 2 | p17 上部 | 当月の月末までの取引量を | 今月の月末までの取引量を | 誤字 |
| 3 | p60 回帰係数 | 数式の誤記載 | ||
| 4 | p112-232 SHAPの引数 | feature_pertubation | feature_perturbation | GitHubコードの2_4、3_3、4_3の引数は修正済み |
| 5 | p129 前処理後のincome件数内訳の実行結果 | <=50K 24720、>50K 7841 | <=50K 21999、>50K 7171 | 誤って前処理前の件数を記載 |
| 6 | p306 中央 | インデックスj関係は以下の関係になります。 | インデックスjは以下の関係になります。 | 誤字 |
| 7 | p340 1本目の木の可視化 | figsize=(20,20) | figsize=(20, 20) | スペースを追加 |
サンプルコードの間違いや動作不具合は本リポジトリの Issues に投稿してください。
動作不具合についての投稿では、以下を記載してください。
- 実行プログラム名
- エラーメッセージ
- ライブラリのバージョン
その他問い合わせはメールアドレス ayukat101699@gmail.com までお願いします。
動作確認したライブラリのバージョンは執筆時点の Google Colaboratory の最新バージョンになります。Colab環境は定期的にバージョン更新するので、プログラム実行時にエラーが発生する場合、記載のバージョンに戻して実行してください。Docker環境, Poetry環境, uv環境 はPython 3.10.11で実行する前提でライブラリのバージョンを固定してます。
- 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 はクラウドのJupyter Notebook環境を提供します。1.3節の手順を参考に初期設定して、Googleドライブにサンプルコードを格納して、Notebookを開いて実行してください。
Docker のコンテナ環境でサンプルコードを実行できるようDockerfileを用意しました。以下の手順を参考に環境構築して、JupyterLab のNotebookを開いて実行してください。前提条件のバージョンは筆者が動作確認したバージョンです。なお、ビルドで使用するライブラリrequirements.txtは Poetry で作成しました。
-
前提条件
-
コマンドラインでリポジトリをgit cloneし、ディレクトリ
lightgbm_sampleに移動します。
# クローン先ディレクトリの作成
$ mkdir repository
# ディレクトリの移動
$ cd repository
# リポジトリの取得
$ git clone https://github.com/ayukat1016/lightgbm_sample.git
# ディレクトリの移動
$ cd lightgbm_sample/
# ディレクトリの確認(`xxx`はユーザーにより異なります。)
$ pwd
/home/xxx/repository/lightgbm_sample
# ファイルの確認
$ ls
Dockerfile LICENSE README.md chapter2 chapter3 chapter4 chapter5 poetry.lock pyproject.toml requirements.txtDockerfileを指定して、imageをビルドします。
# ビルド
$ docker build --platform linux/amd64 -t lightgbm_sample:lightgbm_sample_1.0.0 -f Dockerfile .- imageを指定して、コンテナ起動、コンテナ内でJupyterLabのコマンドを実行します。サンプルコードのNotebookは
-vオプションでコンテナ内にマウントします。
# コンテナ起動+JupyterLab実行
$ docker run -it --rm --name lightgbm_sample -v $PWD:/opt -p 8888:8888 lightgbm_sample:lightgbm_sample_1.0.0 jupyter lab --ip=0.0.0.0 --allow-root --ServerApp.token=''-
webブラウザのURL http://localhost:8888 にアクセスし、サンプルコードを実行します。
-
終了するには Ctrlキー + C を押下してください。このとき、コンテナは自動的に停止、削除されます。
Poetry の仮想環境でサンプルコードを実行できるようpyproject.tomlを用意しました。以下の手順を参考に環境構築して、JupyterLab のNotebookを開いて実行してください。前提条件のバージョンは筆者が動作確認したバージョンです。手順はvirtualenvs.in-project = false(デフォルト)前提で記載しています。仮想環境の保存場所を変更したい場合は Poetry の設定をご自身の環境方針に合わせて調整してください。
-
前提条件
-
コマンドラインでリポジトリをgit cloneし、ディレクトリ
lightgbm_sampleに移動します。
# クローン先ディレクトリの作成
$ mkdir repository
# ディレクトリの移動
$ cd repository
# リポジトリの取得
$ git clone https://github.com/ayukat1016/lightgbm_sample.git
# ディレクトリの移動
$ cd lightgbm_sample/
# ディレクトリの確認(`xxx`はユーザーにより異なります。)
$ 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)
# 仮想環境ディレクトリの確認
$ poetry env info --path
/home/xxx/.cache/pypoetry/virtualenvs/lightgbm-sample-qPUWcycm-py3.10- 決定木の可視化に使用する Graphviz をインストールします。Pythonパッケージだけでなく、システムの graphviz CLI も必要です
# graphvizのインストール
# Ubuntu / Debian
$ sudo apt update && sudo apt install -y graphviz
# macOS (Homebrew)
$ brew install graphviz
# graphvizの確認
$ dot -V
dot - graphviz version 2.43.0 (0)- poetry仮想環境で、JupyterLabのコマンドを実行します。
# 仮想環境起動+JupyterLab実行
$ poetry run jupyter lab --ServerApp.token='' --port=8888-
webブラウザのURL http://localhost:8888 にアクセスし、サンプルコードを実行します。
-
終了するには Ctrlキー + C を押下してください。
-
Docker コンテナで JupyterLab を使用した後に Poetry を使用する場合、
.ipynb_checkpointsを削除してください。これらは root 権限で作成されるため、Poetry 環境(通常ユーザー)でアクセスするとエラーになります。
# `.ipynb_checkpoints`ファイルの削除
$ sudo find . -type d -name ".ipynb_checkpoints" -exec rm -rf {} +Poetry の手順を正としつつ、近年 uv は高速で広く使われているため、補助的な位置づけで手順を追加しました。以下の手順を参考に環境構築して、JupyterLab のNotebookを開いて実行してください。前提条件のバージョンは筆者が動作確認したバージョンです。Docker や Poetry 環境と同様に、uv 仮想環境も Python 3.10.11 で動作させます。
-
前提条件
-
uv が未インストールの場合は、以下のコマンドでインストールしてください
すでにuvインストール済みの場合はこの手順はスキップしてください。
# 公式のインストール手順
$ curl -LsSf https://astral.sh/uv/install.sh | sh
# インストールの確認
$ uv --version
uv 0.9.16- コマンドラインでリポジトリをgit cloneし、ディレクトリ
lightgbm_sampleに移動します。
# クローン先ディレクトリの作成
$ mkdir repository
# ディレクトリの移動
$ cd repository
# リポジトリの取得
$ git clone https://github.com/ayukat1016/lightgbm_sample.git
# ディレクトリの移動
$ cd lightgbm_sample/
# ディレクトリの確認(`xxx`はユーザーにより異なります。)
$ pwd
/home/xxx/repository/lightgbm_sample
# ファイルの確認
$ ls
Dockerfile LICENSE README.md chapter2 chapter3 chapter4 chapter5 poetry.lock pyproject.toml requirements.txt- Pythonのバージョンを指定します。未インストールなら自動インストールされます。
- バージョン指定で
.python-versionが作成されるため、pyenv を利用している場合も同じ設定を共有できます。
# バージョンの指定
$ uv python pin 3.10.11- ディレクトリ
lightgbm_sample内に.venvのuv仮想環境を構築します。
# 仮想環境を作成
$ uv venv
# 仮想環境にライブラリインストール
$ uv pip sync requirements.txt- 決定木の可視化に使用する Graphviz をインストールします。Pythonパッケージだけでなく、システムの graphviz CLI も必要です
# graphvizのインストール
# Ubuntu / Debian
$ sudo apt update && sudo apt install -y graphviz
# macOS (Homebrew)
$ brew install graphviz
# graphvizの確認
$ dot -V
dot - graphviz version 2.43.0 (0)- uv仮想環境で、JupyterLabのコマンドを実行します。
# 仮想環境起動+JupyterLab実行
$ uv run jupyter lab --ServerApp.token='' --port=8888-
webブラウザのURL http://localhost:8888 にアクセスし、サンプルコードを実行します。
-
終了するには Ctrlキー + C を押下してください。
-
Docker コンテナで JupyterLab を使用した後に uv を使用する場合、
.ipynb_checkpointsを削除してください。これらは root 権限で作成されるため、uv 環境(通常ユーザー)でアクセスするとエラーになります。
# `.ipynb_checkpoints`ファイルの削除
$ sudo find . -type d -name ".ipynb_checkpoints" -exec rm -rf {} +| 日付 | 変更内容 |
|---|---|
| 2023-06-17 | 初版 |
| 2023-08-16 | 初版の正誤表を追加 |
| 2024-03-19 | Dockerコンテナ環境の実行手順を追加 |
| 2024-05-05 | 正誤表の更新 |
| 2024-05-07 | Poetry仮想環境の実行手順を追加 |
| 2024-07-17 | 記載の見直し |
| 2024-08-01 | Issues#9,#10を正誤表に反映 |
| 2025-03-04 | 正誤表のNo列の追加 |
| 2025-06-24 | DockerでJupyterLabを実行した後のPoetry実行手順を追記 |
| 2025-08-16 | 記載の見直し |
| 2025-12-09 | uv仮想環境の実行手順を追加 |
