Python での勾配ブースティング (GBM) アルゴリズムの例
勾配ブースティング (GBM) は、モデルを反復的にトレーニングすることで損失関数を徐々に低減する機械学習手法です。回帰問題と分類問題の両方で優れた適用結果が得られ、強力なアンサンブル学習アルゴリズムです。この記事では、Python を例として、GBM アルゴリズムを使用して回帰問題をモデル化する方法を紹介します。
まず、以下に示すように、一般的に使用される Python ライブラリをインポートする必要があります:
import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingRegressor from sklearn.metrics import mean_squared_error
この場合、モデリングに Car Evaluation データ セットを使用します。これには、6 つの属性と 1 つのカテゴリが含まれています。変数。これらの属性変数を使用して車両の価格を予測します。まず、以下に示すように、CSV ファイルを Pandas DataFrame に読み取る必要があります。
data=pd.read_csv("car_data_1.csv")
次に、元のデータをトレーニング セットとテスト セットに分割する必要があります。データの 80% をトレーニング セットとして使用し、データの 20% をテスト セットとして使用します。
train_data, test_data, train_label, test_label = train_test_split(data.iloc[:,:-1], data.iloc[:,-1], test_size=0.2, random_state=1)
次に、特徴量エンジニアリングを実行して、カテゴリ変数をダミー変数 (ダミー変数) にエンコードする必要があります。ここでは Pandas の get_dummies 関数を使用します。
train_data = pd.get_dummies(train_data) test_data = pd.get_dummies(test_data)
これで、GBM モデルを構築できるようになりました。まずモデルを初期化し、パラメータを設定します。ここでは、モデルの反復数 (n_estimators) を 100 に、学習率パラメーター (learning_rate) を 0.1 に設定します。
model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, random_state=1)
次に、トレーニング セット データを使用してモデルを近似します。
model.fit(train_data,train_label)
次に、テスト セット データを使用してモデルのパフォーマンスを評価します。ここでは、平均二乗誤差 (MSE) を使用してモデルのパフォーマンスを評価します。コードは次のようになります。
pred=model.predict(test_data) mse=mean_squared_error(test_label, pred) print("MSE:",mse)
最後に、GBM モデルにおける変数の重要性をさらに詳しく調べます。 sklearn の feature_importances_ 関数を使用して取得できます。
feat_imp = pd.Series(model.feature_importances_, index=train_data.columns).sort_values(ascending=False) print(feat_imp)
つまり、この記事では、Python の sklearn ライブラリを使用して GBM アルゴリズムを実装する方法を説明します。車の評価データセットを使用して、車両の価格を予測し、モデルのパフォーマンスを評価します。また、変数の重要度スコアも取得できます。 GBM は機械学習において優れた応用効果があり、強力なアンサンブル学習アルゴリズムです。
以上がPython での勾配ブースティング (GBM) アルゴリズムの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。