我正在做回归LinearRegression并得到均方误差0。我认为应该有一些偏差(至少很小)。您能解释一下这个现象吗?## Import packagesimport numpy as npimport pandas as pdfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import mean_squared_errorimport urllib.request## Import dataseturllib.request.urlretrieve('https://raw.githubusercontent.com/Data-Science-FMI/ml-from-scratch-2019/master/data/house_prices_train.csv', 'house_prices_train.csv')df_train = pd.read_csv('house_prices_train.csv')x = df_train['GrLivArea'].values.reshape(1, -1)y = df_train['SalePrice'].values.reshape(1, -1)print('The explanatory variable is', x)print('The variable to be predicted is', y)## Regressionreg = LinearRegression().fit(x, y)mean_squared_error(y, reg.predict(x))print('The MSE is', mean_squared_error(y, reg.predict(x)))print('Predicted value is', reg.predict(x))print('True value is', y)结果是The explanatory variable is [[1710 1262 1786 ... 2340 1078 1256]]The variable to be predicted is [[208500 181500 223500 ... 266500 142125 147500]]The MSE is 0.0Predicted value is [[208500. 181500. 223500. ... 266500. 142125. 147500.]]True value is [[208500 181500 223500 ... 266500 142125 147500]]
1 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
虽然模型在其自身训练集上的得分会被夸大的评论肯定是正确的,但它不太可能与线性回归完美契合,尤其是只有一个特征。
您的问题是您错误地重塑了数据:reshape(1, -1)
创建了一个 shape 数组(1, n)
,因此您的模型认为它具有仅单个样本的n
特征和n
输出,因此具有完美拟合的多元线性回归。尝试使用reshape(-1, 1)
forx
而不是重塑 for y
。
添加回答
举报
0/150
提交
取消