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

任意n次多项式回归基于系数生成预测公式的实现方法

解决方案

你需要严格匹配Pipeline的训练流程计算预测值,整个过程不需要硬编码任何系数、多项式项,适配任意次数的多项式回归,用numpy自带运算即可实现,不需要额外引入scipy方法。

核心注意点

你的Pipeline包含StandardScaler标准化步骤,不能直接用原始特征乘线性模型系数,必须先对输入特征做标准化,再生成多项式特征后再做运算。

最简实现方式

直接复用Pipeline中已经训练好的组件做特征转换,配合numpy矩阵乘法计算结果:

import numpy as np

# 提取Pipeline内的已训练组件
scaler = model['scaler']
poly_transformer = model['polynomial_features']
linear_model = model['linear_regression']

# 输入原始特征,单样本输入shape为(1, 5),批量输入shape为(样本数, 5)
raw_input = np.array([[feat1, feat2, feat3, feat4, feat5]])

# 按训练流程依次做特征转换
scaled_input = scaler.transform(raw_input)
poly_input = poly_transformer.transform(scaled_input)

# 计算预测值,单样本取val[0]即可得到数值结果
val = (poly_input @ linear_model.coef_) + linear_model.intercept_

手动实现(不调用sklearn的transform方法)

如果需要完全脱离sklearn实现计算,可以先提取预处理组件的参数手动计算:

  1. 先做标准化:
# 提取标准化的均值和标准差
feat_mean = scaler.mean_
feat_std = scaler.scale_
# 手动计算标准化后特征
scaled_input = (raw_input - feat_mean) / feat_std
  1. 生成多项式特征:
    你可以调用poly_transformer.get_feature_names_out()方法获取所有多项式项的生成顺序,返回结果和linear_model.coef_的索引一一对应,比如2次多项式返回结果为['x0', 'x1', 'x2', 'x3', 'x4', 'x0^2', 'x0 x1', 'x0 x2' ...],按该顺序手动计算每个多项式项的值后,和coef_对应相乘求和,再加intercept_即可得到预测值。
    该方式本质和调用transform方法一致,灵活性更低,更推荐直接复用已训练组件的转换方法。

内容的提问来源于stack exchange,提问作者8-Bit Borges

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:09:03