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

Sklearn中LinearRegression训练后是否需再次调用fit()?代码优化咨询

关于LinearRegression拟合步骤的疑问解答

1. 能不能省略lm.fit(X, y)这一行?

这得看你的最终预测目标来判断:

  • 如果你的目的是用所有可用的X和y数据训练模型,再对X_real做预测,那这一行绝对不能省略!你之前的lm.fit(X_train, y_train)只用了20%的数据(因为test_size=0.8,训练集仅占总量的20%),重新用全量数据拟合能让模型学到更全面的信息,预测效果通常会更好。
  • 如果你只是想用之前基于X_train训练好的模型来预测X_real,那可以省略这行,但要注意:此时模型仅基于小部分数据训练,预测性能大概率不如全量数据训练的模型。

简单总结:如果要得到基于全量数据的最优预测模型,必须保留;如果只是用训练集模型做临时预测,才可以省略。

2. 无需计算精度时,更优的方法是什么?

当然有更简洁高效的方案!你原来的train_test_split、lm.predict(X_test)、lm.score(X_test, y_test)都是为了评估模型精度。如果不需要做精度评估,完全可以跳过这些步骤,直接用全量数据拟合后预测即可——这样既节省计算资源,又能让模型利用所有可用信息:

lm = LinearRegression()
# 直接用全部数据训练模型
lm.fit(X, y)
# 对新特征做预测
pred = lm.predict(X_real)

这个流程去掉了不必要的评估环节,是不需要精度验证时的最优选择。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:35:38