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

如何程序化生成含100个特征与单一特征交互的回归模型公式?

自动生成含交互项的Statsmodels回归公式

核心思路

通过字符串拼接动态生成回归公式,彻底避免手动编写100个重复交互项,完全适配statsmodels的R风格语法规则。

实现步骤与代码示例

  1. 定义变量与特征列表
    先明确目标变量、核心交互特征,以及需要配对的100个特征列表(务必保证列表内的名称与数据框列名完全一致):
import statsmodels.formula.api as smf
import pandas as pd

# 示例数据集(实际替换为你的真实数据)
df = pd.DataFrame({
    'Y': range(1000),
    'a': range(1000),
    **{f'feat_{i}': range(1000) for i in range(100)}
})

# 用于交互的核心特征
core_feature = 'a'
# 100个待与核心特征交互的特征列表
feature_list = [f'feat_{i}' for i in range(100)]
  1. 动态生成公式字符串
    用列表推导式批量生成交互项,再拼接成完整的回归公式:
# 生成所有交互项的字符串,格式为a*feat_0 + a*feat_1 + ... + a*feat_99
interaction_terms = ' + '.join([f'{core_feature}*{feat}' for feat in feature_list])
# 组合成完整的回归公式
formula = f'Y ~ {interaction_terms}'

注:如果只需要纯交互项(不含主效应项),将*替换为:即可,即f'{core_feature}:{feat}'

  1. 拟合模型并查看结果
# 拟合普通最小二乘回归模型
model = smf.ols(formula=formula, data=df).fit()
# 输出模型详细摘要
print(model.summary())

注意事项

  • 若数据集规模较大,100个交互项会增加模型拟合时间,可先根据业务逻辑筛选特征后再生成公式
  • 特征名称中不能包含空格或特殊字符,否则会触发公式解析报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:10:35