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

预测新数据集时:scaler.fit_transform与transform该如何选择?

关于Lasso模型部署时标准化方法的选择

核心结论

必须使用 scaler.transform(new_dataset),绝对不能用 fit_transform

为什么两者结果不同?

  • fit_transform 会针对新数据集重新计算均值、标准差等统计量,再用这些新统计量做标准化。但你的Lasso模型是基于训练数据的统计量训练出来的,新数据用自己的统计量会导致数据分布和训练时完全脱节,预测结果毫无意义。
  • transform 是直接复用训练阶段已经计算好的统计量来处理新数据,这样新数据的分布和训练数据保持一致,模型的预测逻辑才能正常工作。

额外修正:你的多项式转换代码也有问题

处理新数据时,你用了 loaded_converter.fit_transform(campaign),这也是错误的。正确做法是用 loaded_converter.transform(campaign)——多项式转换器的特征生成规则是基于训练数据确定的,重新fit新数据会生成和训练时不匹配的特征,模型根本无法正确处理。

修正后的预测代码:

campaign = [[149,22,12]]
transformed_data = loaded_converter.transform(campaign)  # 替换为transform
scaled_data = loaded_scaler.transform(transformed_data)
loaded_model.predict(scaled_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:25:18