Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют одну функцию, или array.reshape (1, -1), если он содержит один образец. - PullRequest
0 голосов
/ 01 ноября 2019

Хотя я и прогнозирую одну выборку из моих данных, она дает ошибку изменения формы, но моя модель не имеет равных строк, что является проблемой, ребята, нашел похожий вопрос, но отличается необъяснимым.

import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np
x = np.array([2.0 , 2.4, 1.5, 3.5, 3.5, 3.5, 3.5, 3.7, 3.7])
y = np.array([196, 221, 136, 255, 244, 230, 232, 255, 267])

lr = LinearRegression()
lr.fit(x,y)

print(lr.predict(2.4))

Ошибка

"если он содержит одну выборку.". Формат (массив)) ValueError: Ожидаемый 2D-массив, вместо него получен скалярный массив: array = 2.4. Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют одну функцию, или array.reshape (1, -1), если он содержит одну выборку.

1 Ответ

0 голосов
/ 01 ноября 2019

Вы должны изменить свой X, чтобы он был 2D-массивом, а не 1D-массивом. Для подгонки модели требуется двумерный массив. i.e (n_samples, n_features)

x = np.array([2.0 , 2.4, 1.5, 3.5, 3.5, 3.5, 3.5, 3.7, 3.7])
y = np.array([196, 221, 136, 255, 244, 230, 232, 255, 267])

lr = LinearRegression()
lr.fit(x.reshape(-1, 1), y)

print(lr.predict([[2.4]]))
...