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

如何用SKLearn训练好的线性回归模型实现新数据预测?

解决新数据的线性回归预测问题

嘿,别担心,这个问题其实很容易搞定,我来给你拆解清楚步骤:

核心要点

训练好的regressor模型可以直接复用,关键是要让新数据的格式和训练时的输入完全一致——这是新手最容易踩的坑!

具体步骤

1. 准备新数据

假设你有10条新的卡路里摄入数据,比如:

new_calories = [180, 220, 280, 320, 380, 420, 450, 120, 160, 250]

2. 转换数据格式为二维数组

Sklearn的线性回归模型要求输入特征是二维数组,形状为(样本数量, 特征数量)。哪怕只有1个特征(这里是卡路里),也不能传一维列表,否则会报错。

你有两种方式转换:

  • 用NumPy的reshape方法:
    import numpy as np
    new_calories_2d = np.array(new_calories).reshape(-1, 1)
    
  • 不用NumPy,直接手动写成嵌套列表:
    new_calories_2d = [[val] for val in new_calories]
    

3. 用训练好的模型做预测

直接调用regressor.predict()方法传入处理好的二维数据即可:

# 生成预测结果
new_weight_predictions = regressor.predict(new_calories_2d)

# 可以把输入和预测结果对应起来打印,更直观
for cal, predicted_weight in zip(new_calories, new_weight_predictions):
    print(f"卡路里摄入: {cal} → 预测体重: {round(predicted_weight, 2)}")

额外提醒(重要!)

如果你的训练数据之前做过标准化、归一化这类预处理(比如用StandardScaler或MinMaxScaler),那新数据必须用同一个预处理对象来转换,绝对不能重新拟合预处理工具!举个例子:

# 假设训练时的预处理代码是这样的
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
x_train_scaled = scaler.fit_transform(x_train)
regressor.fit(x_train_scaled, y_train)

# 那新数据要这样处理(用同一个scaler的transform方法,不是fit_transform!)
new_calories_scaled = scaler.transform(new_calories_2d)
new_weight_predictions = regressor.predict(new_calories_scaled)

这样就能得到准确的预测结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:10:44