прогнозирование 1 значения по прогнозу от sklearn - PullRequest
0 голосов
/ 02 апреля 2020

Я изучаю машинное обучение и в видео-курсе лектор показывает, как предсказать 1 значение с помощью функции предсказания от sklearn. Он просто выполняет его с параметром float, и он работает нормально. Но когда я пытаюсь сделать то же самое, я получаю ValueError:

>linear_regressor.predict(6.5)

ValueError: Expected 2D array, got scalar array instead:
array=6.5.
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

Я пытался изменить его, но я получаю ту же ошибку:

lvl_of_interest =  np.array([6.5])
np.reshape(lvl_of_interest,(1,-1))
linear_regressor.predict(6.5)

Пожалуйста, скажите, возможно, есть некоторые изменения в библиотеке от версии к версии (курсу несколько лет). И как можно получить одну функцию для одного образца?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Есть две проблемы:

  • Вы изменяете свой массив, но вызываете предикат с тем же плавающим числом (вместо измененного массива, ie linear_regressor.predict(6.5) вместо linear_regressor.predict(lvl_of_interest))

  • Кроме того, np.reshape следует переназначить:

    lvl_of_interest =  np.array([6.5])
    lvl_of_interest = np.reshape(lvl_of_interest,(1,-1))
    linear_regressor.predict(lvl_of_interest)
    

или в 1 строку: linear_regressor.predict(np.array([6.5]).reshape(1,-1))

(Примечание: если вы проверяете фигуры, вы преобразуете массив (1,) в (1,1))

0 голосов
/ 03 апреля 2020

LinearRegression().predict() ожидается как массив двумерных объектов для X.

Вы можете сделать массив 2-мерным с .reshape(1, -1), как подсказывает сообщение об ошибке, или просто сделать его двумерным из начало:

linear_regressor.predict(np.array([[6.5]]))
...