LightGBMでInput numpy.ndarray must be 2 dimensional lightgbm

LightGBMでnp.arrayを入力して回帰モデルを作ろうとした時に表題のエラー。

X_train, X_test, y_train, y_test = train_test_split(X, y)

model = lgb.LGBMRegressor()
model.fit(X_train, y_train)
Input numpy.ndarray must be 2 dimensional lightgbm

2次元のndarrayを渡せと怒られた。

しかし、reshapeしたりnp.array(list(X_train))したりしてみてもエラーが解決しない。

lgb.Datasetを使い、lgb.LGBRegressorではなくlgb.trainにしたらエラーは出なくなり、学習が始まった。

X_train, X_test, y_train, y_test = train_test_split(X, y)

train = lgb.Dataset(X_train, label=y_train)
test = lgb.Dataset(X_test, label=y_test)

model = lgb.train(train_set=train,
                  valid_sets=test)

なぜnp.array上手く行かなくて、lgb.Datasetなら上手く行ったのか、原因は分からなかった。

とりあえず動いたけど、モヤモヤする…。

参考

Attention Required! | Cloudflare
lightGBMのTypeError: Wrong type(ndarray) for label. It should be list, numpy 1-D array or panda、について
lightGBMを使用していて、 **TypeError: Wrong type(ndarray) for label. It should be list, numpy 1-D array or

コメント

タイトルとURLをコピーしました