LightGBMのPythonサンプルコード
概要
アイリスデータセットを用いた分類機を作成
インストール
pip install lightgbm
サンプルコード
# 必要なライブラリのインポート import lightgbm as lgb from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report # データの読み込み iris = load_iris() X = iris.data y = iris.target # 訓練データとテストデータに分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # LightGBMデータセットに変換 train_data = lgb.Dataset(X_train, label=y_train) test_data = lgb.Dataset(X_test, label=y_test) # モデルのパラメータ設定 params = { 'objective': 'multiclass', 'num_class': 3, 'metric': 'multi_logloss', 'boosting_type': 'gbdt', 'num_leaves': 31, 'learning_rate': 0.05, 'feature_fraction': 0.9 } # モデルの訓練 model = lgb.train(params, train_data, valid_sets=[test_data], num_boost_round=1000, early_stopping_rounds=10) # テストデータを使って予測 y_pred = model.predict(X_test) y_pred = y_pred.argmax(axis=1) # 最も確率が高いクラスに変換 # 評価 accuracy = accuracy_score(y_test, y_pred) report = classification_report(y_test, y_pred) print(f"Accuracy: {accuracy:.2f}") print("Classification Report:") print(report)
実行結果
Accuracy: 1.00 Classification Report: precision recall f1-score support 0 1.00 1.00 1.00 19 1 1.00 1.00 1.00 13 2 1.00 1.00 1.00 13 accuracy 1.00 45 macro avg 1.00 1.00 1.00 45 weighted avg 1.00 1.00 1.00 45