Scikit learn 多类多标签分类的GBM训练中的维数相关问题?

Scikit learn 多类多标签分类的GBM训练中的维数相关问题?,scikit-learn,training-data,dimensions,multiclass-classification,lightgbm,Scikit Learn,Training Data,Dimensions,Multiclass Classification,Lightgbm,我想用LightGBM算法对多类多标签分类,但我在训练过程中遇到了一个问题,因为我不是输入列表。 实际行的长度为10000 dataset = pd.read_csv('Data.csv') X = dataset.iloc[:,np.r_[0:6, 7:27]].values y = dataset.iloc[:,np.r_[6]].values x_train, x_test, y_train, y_test = train_test_split(X, y,test_size = 0.2

我想用LightGBM算法对多类多标签分类,但我在训练过程中遇到了一个问题,因为我不是输入列表。 实际行的长度为
10000

dataset = pd.read_csv('Data.csv') 
X = dataset.iloc[:,np.r_[0:6, 7:27]].values
y = dataset.iloc[:,np.r_[6]].values

x_train, x_test, y_train, y_test = train_test_split(X, y,test_size = 0.25, random_state = 0)
from sklearn.preprocessing import StandardScaler
sc=StandardScaler()
x_train = sc.fit_transform(x_train)
x_test = sc.transform(x_test)
import lightgbm as lgb
d_train = lgb.Dataset(x_train, label=y_train)
params = {}
params['learning_rate'] = 0.003
params['boosting_type'] = 'gbdt'
params['objective'] = 'binary'
params['metric'] = 'binary_logloss'
params['sub_feature'] = 0.5
params['num_leaves'] = 10
params['min_data'] = 50
params['max_depth'] = 10
clf = lgb.train(params, d_train, 100)

y_pred=clf.predict(x_test)

for i in range(0,99):
 if y_pred[i]>=.5:
    y_pred[i]=1
 else:
    y_pred[i]=0

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
我遇到这个问题:

    clf = lgb.train(params, d_train, 100)
  File "..\lightgbm\engine.py", line 228, in train
    ...
  File "..\lightgbm\basic.py", line 1336, in set_label
    label = list_to_1d_numpy(_label_from_pandas(label), name='label')
  File "..\lightgbm\basic.py", line 86, in list_to_1d_numpy
    "It should be list, numpy 1-D array or pandas Series".format(type(data).__name__, name))
在函数“”中将数据转换为numpy 1-D数组“”中发现此错误,而我已通过将数据更改为1D

y_train = np.reshape(y_train, [1,trainsize])
x_train = np.reshape(x_train, [1,trainsize*26])
问题没有解决! 然后我使用
ravel
x\u列车、y\u列车创建1D

x_train = np.ravel(x_train)
y_train = np.ravel(y_train)
但新的错误如下所示:


\lib\site packages\lightgbm\basic.py”,第872行,来自np2d的 raise VALUE ERROR('Input numpy.ndarray必须是二维的')
ValueError:输入numpy.ndarray必须是二维的


怎么了?我怎么解决这个问题呢?

什么是
x\u-train
y\u-train
形状?你能给我们提供
x\u-train.shape
y\u-train.shape
的输出吗?试着把
y-train
重塑成
(7500,)
\lib\site-packages\lightgbm\basic.py),第872行,在NPU的初始位置('Input numpy.ndarray必须是二维的')值错误:Input numpy.ndarray必须是二维的