在 python 中使用 LightGBM 包时正确分配标签类型

Proper label type assignment while working with LightGBM package in python

我正在尝试使用 Python 中的 LightGBM 包并遇到此错误:

"TypeError: Wrong type(ndarray) for label, should be list or numpy array".

我的目标(标签)创建为:y_train.values 并且是一个具有以下特征的数组:

Type: int64,
Size: (1000,1)
Value: array([[0],
              [0],
...)

当我追溯这个错误时,我发现了这段代码@ Basic.py code of lightgbm package:

函数 list_to_1d_numpy 抛出此错误。

虽然这个函数应该抛出错误,但我找不到任何原因。然而 它正在调用一个函数 is_numpy_1d_array 检查条件

len(data.shape) == 1, however when i do len(y_train.shape) 它说 2。

有什么办法可以解决吗?

好的,我的想法是正确的。 label(y_train) 需要是一维数组。我使用以下方法将其更改为一维:

y=y_train.ravel()

成功了!

然而,在创建目标本身时,我们本可以

y_train=dataframe['target'].values
I had it like: dataframe[['target']].values,

创建二维数组