You need to enable JavaScript to run this app. 使用scikit-learn训练薪资预测线性回归模型后如何预测新数据点
优惠活动
大模型
产品
解决方案
定价
更多

使用scikit-learn训练薪资预测线性回归模型后如何预测新数据点

已训练scikit-learn线性回归模型对新数据点的预测操作

核心原理

完成fit()训练后的linear_regressor实例,会永久保存从原数据集学到的拟合参数(特征权重、模型截距),不需要重新训练,只要按照模型要求的输入格式传入新特征值,直接调用predict()方法就能得到对应预测结果。

常见报错预警

scikit-learn的监督学习模型统一要求输入特征为二维数组结构,必须和训练时使用的特征维度完全匹配,新手最容易出现两类格式错误:

  • 直接将单个数值(比如代表15年工作经验的数字15)传入predict()方法
  • 传入未做维度调整的一维数组(比如np.array([12, 15, 20]))
    以上两种写法都会直接触发维度不匹配报错Expected 2D array, got 1D array instead。

可直接复用的代码(在你现有代码基础上追加即可)

在你现有代码完成模型拟合、绘制完基础散点图和拟合直线后,补充对应预测逻辑:

  1. 单样本预测(以预测15年工作经验的薪资为例)
# 构造符合格式要求的新特征输入
# 将单个数值15转换为和训练X一致的二维结构
new_single_input = np.array([15]).reshape(-1, 1)
# 调用已训练的模型生成预测
single_pred = linear_regressor.predict(new_single_input)
# 输出结果即为你预期的 [167005.32889087]
print(single_pred)
  1. 批量多新样本预测(比如同时预测10年、15年、22年工作经验的薪资)
# 批量新数据直接按二维嵌套结构构造,无需额外reshape
new_batch_input = np.array([[10], [15], [22]])
batch_pred = linear_regressor.predict(new_batch_input)
print(batch_pred)

注意:做新样本预测时,绝对不要重新调用fit()方法重复训练模型,已训练完成的模型实例已经保存了全部拟合参数,重复训练只会浪费算力,操作不当还可能引入拟合偏差。

可选的效果验证

可以将新预测的点直接叠加到之前的拟合结果图上,直观验证预测效果:

plt.scatter(new_single_input, single_pred, color='green', s=120, label='15年经验薪资预测值')
plt.legend()
plt.show()

内容的提问来源于stack exchange,提问作者Ua9612

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 20:45:03