简单线性回归中生成y_pred却未使用,该变量的作用是什么?
为什么生成了y_pred却没被使用?
这段代码里y_pred = regressor.predict(X_test)确实没有被用到,但这只是因为当前的可视化逻辑不需要它,y_pred本身是线性回归工作流里很关键的产物,下面具体解释:
一、当前代码没用到y_pred的原因
你用来画回归线的代码是plt.plot(X_train, regressor.predict(X_train), color = 'blue'),不管是训练集还是测试集的可视化,这条回归线都是基于训练集拟合出的模型参数生成的——线性回归的模型是一条固定的直线(参数coef_和intercept_在regressor.fit()后就确定了),所以用X_train或者X_test来预测,得到的都是这条直线上的点,画出来的线完全重合。因此测试集的绘图不需要用到y_pred,直接用训练集的预测结果就能画出正确的回归线。
二、y_pred的实际用途
它的价值体现在模型评估和结果验证上,常见用法包括:
- 模型性能量化:计算预测值和真实值的误差,比如平均绝对误差(MAE)、均方误差(MSE)、R²分数,代码示例:
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score print("MAE:", mean_absolute_error(y_test, y_pred)) print("MSE:", mean_squared_error(y_test, y_pred)) print("R²:", r2_score(y_test, y_pred)) - 可视化预测差异:对比测试集真实值和预测值的分布,比如画散点图:
plt.scatter(X_test, y_test, color='red', label='真实薪资') plt.scatter(X_test, y_pred, color='green', label='预测薪资') plt.plot(X_train, regressor.predict(X_train), color='blue') plt.title('真实薪资vs预测薪资(测试集)') plt.xlabel('工作年限') plt.ylabel('薪资') plt.legend() plt.show() - 输出预测结果:如果需要直接得到测试集中每个样本的预测薪资,
y_pred就是对应的结果,可以直接打印或保存。
内容的提问来源于stack exchange,提问作者jonlima
相关产品推荐
相关产品推荐

