Найдены входные переменные с непоследовательным количеством выборок: [1, 7] - PullRequest
0 голосов
/ 03 марта 2020

Я изучаю python для искусственного интеллекта, где я сталкиваюсь с проблемой реализации линейной регрессии.

Я импортировал:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

на ноутбуке Jupyter, который работал просто. затем взял эти массивы:

x=np.array([5,2,7,8,70,88,6])
y=np.array([5,7,6,22,3,44,5])

reg=LinearRegression()

теперь, когда я хочу применить к нему функции reshape и fit, выдает ошибку, код:

x=x.reshape(1,-1)
reg.fit(x,y)

Ошибка:

Найдены входные переменные с непоследовательным количеством выборок: [1, 7]

1 Ответ

0 голосов
/ 05 марта 2020

Просто, чтобы объяснить это более подробно.

Модели машинного обучения требуют двумерного ввода. в вашей задаче у вас есть одномерный массив

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
x=np.array([5,2,7,8,70,88,6])
y=np.array([5,7,6,22,3,44,5])
x.shape

, он будет отображаться

(7,)

изменение формы поможет вам предоставить информацию в 2D формате для модели

x.reshape(1,-1)
y.reshape(1,-1)

согласно документации

Измените ваши данные либо с помощью array.reshape (-1, 1), если ваши данные имеют

одна особенность или array.reshape (1, -1), если она содержит одну выборку.

позволяет обучать модель

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

Теперь давайте сделаем некоторый прогноз, Однако, опять же, делая прогноз, вам нужно предоставить тестовые данные в 2d формате для модели.

x_test=np.array([5,2,6,8,20,48,6])
x_test=x_test.reshape(1,-1)

теперь позволяет прогнозировать

y_pred=reg.predict(x_test)
y_pred

вывод будет

array([[ 5.,  7.,  6., 22.,  3., 44.,  5.]])
...