Мне нужно соответствовать RandomForestRegressor
от sklearn.ensemble
.
forest = ensemble.RandomForestRegressor(**RF_tuned_parameters)
model = forest.fit(train_fold, train_y)
yhat = model.predict(test_fold)
Этот код всегда работал, пока я не произвел предварительную обработку данных ( train_y
). В сообщении об ошибке говорится:
DataConversionWarning: вектор-столбец y был передан, когда ожидался массив 1d. Измените форму y на (n_samples,), например, используя ravel ().
model = forest.fit (train_fold, train_y)
Раньше это train_y
была серия, теперь это массив numpy (это вектор-столбец). Если я применяю train_y.ravel()
, то он становится вектором-строкой, и сообщение об ошибке не появляется, поскольку этап прогнозирования занимает очень много времени (на самом деле он никогда не заканчивается ...).
В документах RandomForestRegressor
я обнаружил, что это train_y
должно быть определено как y : array-like, shape = [n_samples] or [n_samples, n_outputs]
Любая идея, как решить эту проблему?
источник
train_fold.shape
иtrain_y.shape
?train_y
данных, чтобы убедиться, что предварительная обработка не повредила его?RF_tuned_parameters
для нас, пожалуйста.Ответы:
Измените эту строку:
кому:
Редактировать:
.values
даст значения в массиве. (форма: (n, 1).ravel
преобразует эту форму массива в (n,)источник
ravel()
делает: когда у вас естьy.shape == (10, 1)
, используяy.ravel().shape == (10, )
. На словах ... он сглаживает массив.Я также столкнулся с этой ситуацией, когда пытался обучить классификатор KNN . но похоже, что предупреждение исчезло после того, как я изменился:
knn.fit(X_train,y_train)
на
knn.fit(X_train, np.ravel(y_train,order='C'))
Перед этой строкой я использовал
import numpy as np
.источник
.ravel()
подхода мой вектор-столбец конвертировался в вектор-строку, а не в массив, но это исправление сработало для меня.У меня такая же проблема. Проблема заключалась в том, что метки были в формате столбца, хотя ожидалось, что это будет строка. использовать
np.ravel()
Надеюсь, это решит проблему.
источник
np.ravel()
?используйте код ниже:
если вы все еще получаете пощечину по ошибке, как показано ниже?
используйте этот код:
источник
Другой способ сделать это - использовать
ravel
источник
С neuraxle вы можете легко решить эту проблему:
Neuraxle - это подобная sklearn платформа для настройки гиперпараметров и AutoML в проектах глубокого обучения!
источник
источник
Y = y.values [:, 0]
Y - formated_train_y
y - train_y
источник