Полиномиальная регрессия: ValueError: фигуры (88,1) и (3,1) не выровнены: 1 (тусклый 1)! = 3 (тусклый 0) - PullRequest
0 голосов
/ 02 августа 2020

Это мои данные:

Sale Price  Year Sold
48  395000.0    2015
1   260000.0    2015
50  425000.0    2016
30  2142000.0   2016
29  377011.0    2016
... ... ...
47  740000.0    2020
50  448208.0    2020
51  975000.0    2020
27  265000.0    2020
1   450000.0    2020

Я пытаюсь подогнать линию полиномиальной регрессии, но получаю сообщение об ошибке: ValueError: формы (88,1) и (3,1) не выровнены: 1 (dim 1)! = 3 (dim 0), и я не уверен, как это разрешить.

train_x = np.asanyarray(x_train).reshape(-1,1)
train_y = np.asanyarray(y_train).reshape(-1,1)

poly = PolynomialFeatures(degree = 2) 
X_poly = poly.fit_transform(train_x) 

poly.fit(X_poly, train_y) 
lin2 = LinearRegression() 
lin2.fit(X_poly, train_y) 

plt.scatter(x, y, color = 'blue') 

plt.plot(train_x, lin2.predict(train_x), color = 'red') 


plt.show()

1 Ответ

0 голосов
/ 02 августа 2020

Вы должны использовать метод изменения формы, только если вы вводите вектор. Можете ли вы поделиться своим полным кодом в репозитории git.

train_x = np.asanyarray(x_train).reshape(-1,1)
train_y = np.asanyarray(y_train).reshape(-1,1)

Предположим, вы измените форму x_train, она преобразует форму (10,2) в форму (20,1), а для формы y_train будет (10 , 1). Вы можете ясно видеть, что в этом случае вы получите ошибку.

...