Python LightGBMで説明変数が1つしか考慮されない

前提

Pythonにおいて、LightGBMを用いて「回帰問題」を解くためのプログラムを実装しようとしています。
ですが、説明変数が一つしか考慮されず、その原因、および解決方法がわかりません。

実現したいこと

正しいLightGBMのモデルを作成する。

該当のソースコード

Python

#データフレームの初めから最後の一つ前までのカラムを説明変数とするX_train = df_stamp_2019.iloc[:, :df_stamp_2019.shape[1]-1].values y_train = df_stamp_2019.iloc[:, df_stamp_2019.shape[1]-1].values X_test = df_stamp_2020.iloc[:, :df_stamp_2020.shape[1]-1].values y_test = df_stamp_2020.iloc[:, df_stamp_2020.shape[1]-1].values train_set = lgb.Dataset(X_train, y_train)valid_set = lgb.Dataset(X_test, y_test) params = { 'task': 'train', 'boosting_type': 'gbdt', 'objective': 'regression', # 目的 : 回帰 'metric': {'rmse'}, # 評価指標 : rsme(平均二乗誤差の平方根) } model_lgbm = lgb.train( params = params, train_set = train_set, valid_sets = [train_set, valid_set], num_boost_round = 100) y_pred = model_lgbm.predict(X_test) lgb.plot_importance(model_lgbm)

「df_stamp_2019」の先頭5行は以下のようになっており、「predict」以外を説明変数、「predict」を目的変数に設定しています。
「count_ago」以外はワンホットエンコーディングにより生成した変数になります。
イメージ説明
イメージ説明

また、「df_stamp_2019」の情報(df_stamp_2020も同様)は以下のようになっています。
イメージ説明

実行結果

特徴量重要度をプロットすると以下のようになり、18個目のカラム「count_ago」だけが考慮されてしまいます。

イメージ説明

コメントを投稿

0 コメント