Python lightgbm
ライブラリ完全ガイド
lightgbm
は、Microsoft によって開発された高速で効率的な勾配ブースティング(Gradient Boosting)ライブラリです。大規模データに対しても高い精度と処理速度を発揮し、機械学習の実務現場やコンペティションで広く使用されています。本記事では、Python による lightgbm
の使い方を日本語で詳しく紹介します。
1. lightgbm
の概要
インストール方法
pip install lightgbm
2. 主な機能と使用例
(1) データの準備
import lightgbm as lgb from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score iris = load_iris() X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
(2) 学習(sklearn API 使用)
model = lgb.LGBMClassifier() model.fit(X_train, y_train)
(3) 予測と評価
y_pred = model.predict(X_test) print("Accuracy:", accuracy_score(y_test, y_pred))
(4) 重要特徴量の可視化
import matplotlib.pyplot as plt lgb.plot_importance(model, max_num_features=10) plt.show()
(5) ハイパーパラメータの調整
model = lgb.LGBMClassifier(num_leaves=31, learning_rate=0.1, n_estimators=100) model.fit(X_train, y_train)
(6) クロスバリデーション(ネイティブ API)
dtrain = lgb.Dataset(X_train, label=y_train) params = {'objective': 'multiclass', 'num_class': 3, 'metric': 'multi_logloss'} cv_results = lgb.cv(params, dtrain, num_boost_round=50, nfold=3, seed=42) print(cv_results)
(7) モデル保存と読み込み
model.booster_.save_model("lightgbm_model.txt") booster = lgb.Booster(model_file="lightgbm_model.txt")
(8) カテゴリ変数の処理
import pandas as pd X_df = pd.DataFrame(X_train) X_df[0] = X_df[0].astype('category') model = lgb.LGBMClassifier() model.fit(X_df, y_train)
(9) SHAP による特徴量の可視化
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test)
(10) 予測確率の出力
proba = model.predict_proba(X_test) print(proba[:5])
3. lightgbm
の主な機能まとめ
機能 | 説明 |
---|---|
LGBMClassifier / LGBMRegressor |
sklearn API でのモデル構築 |
Dataset |
ネイティブ API 用のデータ構造 |
高速学習 | Leaf-wise の木構築と並列学習 |
カテゴリ変数処理 | 自動で最適なエンコーディングを選択 |
SHAP対応 | 特徴量の寄与度を可視化可能 |
まとめ
lightgbm
は、学習速度・精度・拡張性すべてに優れた Gradient Boosting フレームワークです。構造化データを扱うプロジェクトでの強力な武器として、初心者から上級者まで幅広く活用できるライブラリです。