Подтвердить что ты не робот

Следует ли каким-либо образом преобразовать столбец данных pandas, прежде чем передавать его в регрессию scikit learn?

У меня есть фреймворк pandas и передаю df[list_of_columns] как X и df[[single_column]] как Y в регрессор случайного леса.

Что означает следующее предупреждение и что нужно сделать для его устранения?

DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().   probas = cfr.fit(trainset_X, trainset_Y).predict(testset_X)
4b9b3361

Ответ 1

Просто проверьте форму переменной Y, это должен быть одномерный объект, и вы, вероятно, передаете что-то с более (возможно, тривиальными) измерениями. Перетащите его в форму массива list/1d.

Ответ 2

Вы можете использовать df.single_column.values или df['single_column'].values, чтобы получить базовый массив numpy вашей серии (который в этом случае также должен иметь правильную 1D-форму, как упомянуто lejlot).

Ответ 3

На самом деле предупреждение сообщает вам, в чем проблема:

Вы передаете массив 2d, который оказался в форме (X, 1), но метод ожидает 1d-массив и должен быть в форме (X, ).

Кроме того, предупреждение сообщает вам, что нужно сделать, чтобы преобразовать в нужную форму: y.values.ravel().

Ответ 4

Использовать Y = df[[single_column]].values.ravel() решает DataConversionWarning для меня.