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

多元多项式回归月度批量分析需求及model.coef_维度异常咨询

问题解答:自定义多项式回归与月度分组回归实现

为什么model.coef_会输出10个元素?

你代码里用的PolynomialFeatures(degree=2)默认会生成所有可能的一次项、二次项(含交叉项)以及常数项。对于3个输入变量x1、x2、x3,生成的特征列表是:

  • 常数项(全1列)
  • x1、x2、x3(一次项)
  • x1²、x1x2、x1x3、x2²、x2*x3、x3²(二次项)

总共1+3+6=10个特征,因此model.coef_会输出对应这10个特征的系数数组。但你的目标公式只需要x1、x1²、x2²、x3²这4个项(加常数项),默认的特征生成不符合需求。


实现自定义公式+月度分组回归

步骤1:修正数据预处理的潜在问题

你代码中dataset.x1[dataset.y<0]=0存在链式索引风险,建议改为loc索引避免警告:

dataset.loc[dataset['y'] < 0, 'x1'] = 0

步骤2:构造自定义特征

按照公式Y = x1 + A*x1² + B*x2² + C*x3² + Constant,我们只需要构造x1、x1²、x2²、x3²这4个特征,常数项由LinearRegression自动处理。

步骤3:按月份分组执行回归

遍历每个月份的子数据集,拟合回归模型,收集每个月的系数和常数项,最终整理成表格。

完整代码示例

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 读取数据集
dataset = pd.read_csv('dataset.csv')

# 修正:将y<0对应的x1设为0,避免链式索引警告
dataset.loc[dataset['y'] < 0, 'x1'] = 0

# 初始化结果存储列表
monthly_results = []

# 按Month分组遍历
for month, group in dataset.groupby('Month'):
    # 提取当前月份的x和y
    X = group[['x1', 'x2', 'x3']].values
    y = group['y'].values
    
    # 构造自定义特征:x1, x1², x2², x3²
    X_custom = np.column_stack([
        X[:, 0],          # x1
        X[:, 0] ** 2,     # x1²
        X[:, 1] ** 2,     # x2²
        X[:, 2] ** 2      # x3²
    ])
    
    # 拟合线性回归模型
    model = LinearRegression()
    model.fit(X_custom, y)
    
    # 计算R²(可选,用于验证模型效果)
    r2 = r2_score(y, model.predict(X_custom))
    
    # 收集结果:月份、各系数、常数项、R²
    monthly_results.append({
        'Month': month,
        'x1_coef': model.coef_[0],
        'A(x1²)': model.coef_[1],
        'B(x2²)': model.coef_[2],
        'C(x3²)': model.coef_[3],
        'Constant': model.intercept_,
        'R²': r2
    })

# 将结果转换为DataFrame(即所需的月度系数表格)
results_df = pd.DataFrame(monthly_results)
# 按月份排序(可选)
results_df = results_df.sort_values('Month').reset_index(drop=True)

print(results_df)

结果说明

  • results_df就是你需要的月度系数表格,每行对应一个月份的回归结果,包含x1的系数、A/B/C三个二次项系数、常数项,以及可选的R²值用于评估模型拟合效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:43:16