2

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

“TypeError:标签的类型(ndarray)错误,应该是列表或numpy数组”。

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

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

当我追溯这个错误时,我发现了这个代码 @lightgbm包的Basic.py代码

函数 list_to_1d_numpy 抛出此错误。

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

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

有什么想法可以解决吗?

4

1 回答 1

2

好吧,我在想正确的方向。label(y_train) 需要是一维数组。我通过使用将其更改为一维:

y=y_train.ravel()

它奏效了!

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

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

它创建了二维数组

于 2017-07-17T10:44:23.110 回答