![](/img/trans.png)
[英]Linear Regression : ValueError: x and y must have same first dimension, but have shapes (10, 1) and (1, 1)
[英]Linear regression model shapes - ValueError: x and y must have same first dimension, but have shapes (5,) and (1, 5)
我正在關注這個例子https://www.analyticsvidhya.com/blog/2020/03/polynomial-regression-python/
我正在嘗試將最適合我的 matplotlib 圖的線性線擬合。 我不斷收到 x 和 y 沒有相同第一維的錯誤。 但是它們的長度都是 5? 我究竟做錯了什么?
ValueError: x 和 y 必須具有相同的第一維,但具有形狀 (5,) 和 (1, 5)
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
df = pd.read_csv('head_london_pm25vspm10.csv').dropna()
x = df['pm25_ugm3'].values
y = df['pm10'].values
# Training Model
lm = LinearRegression().fit(x.reshape(1, -1), y.reshape(1, -1))
y_pred = lm.predict(x.reshape(1, -1))
# plotting dataset
plt.figure(figsize=(10, 5))
plt.scatter(x, y, s=15)
plt.plot(x, y_pred, color='r')
plt.xlabel('pm25', fontsize=16)
plt.ylabel('pm10', fontsize=16)
plt.show()
print('RMSE for Linear Regression=>', np.sqrt(mean_squared_error(y, y_pred)))
CSV 文件- 'head_london_pm25vspm10.csv'
pm25_ugm3,pm10
3.8,7.9
4.1,10.5
4.2,10.5
4.5,10.9
4.7,11.2
LinearRegression 適用於數組。 由於您的數據只是向量,因此您必須將它們重塑 (reshape(1, -1)) 成數組以使用 LinearRegression。
LinearRegression 的輸出又是一個數組。 但是您的輸入x
仍然是一個向量。 對於繪圖函數,兩個輸入都需要具有相同的形狀。
您可以將 LinearRegression 的輸出重新整形為向量,使其再次與 x 向量的形狀匹配
y_pred = lm.predict(x.reshape(1, -1)).reshape(-1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.