You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

简单线性回归中生成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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:00:09