проблема измерения в обучении LightGBM для Multiclass Multilable Classification? - PullRequest
0 голосов
/ 20 октября 2019

Я бы хотел классифицировать по алгоритму LightGBM для Multiclass Multilable Classification, но я столкнулся с проблемой во время обучения из-за отсутствия списка входных данных. ДАННЫЕ равно sampling rows Длина реальных строк равна 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))

Этоошибка обнаружена в basic.py в функции: "" "Преобразование данных в массив numey 1-D." "" Когда я изменил свои данные на 1D с помощью

y_train = np.reshape(y_train, [1,trainsize])
x_train = np.reshape(x_train, [1,trainsize*26])

Проблема не решена! Затем я использую ravel, чтобы сделать 1D для x_train, y_train

x_train = np.ravel(x_train)
y_train = np.ravel(y_train)

, но отображается новая ошибка:

\ lib \ site-packages \ lightgbm \ basic.py ", строка 872, в __init_from_np2d повысить ValueError ('Входной numpy.ndarray должен быть двухмерным')
ValueError: Входной numpy.ndarray должен быть 2-мерным

Что не так? Как я могу решитьэто?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...