为了账号安全,请及时绑定邮箱和手机立即绑定

为什么线性回归的预测值与真实值完全相同?

为什么线性回归的预测值与真实值完全相同?

白猪掌柜的 2023-09-05 20:53:59
我正在做回归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


查看完整回答
反对 回复 2023-09-05
  • 1 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信