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

基于矩阵表的简单回归:线性回归R2仅0.7的原因排查

线性回归效果不佳的原因分析

根据你提供的理论公式、数据集和代码,线性回归R²仅为0.7的核心原因是模型没有正确捕捉目标变量与特征间的乘积交互关系,具体拆解如下:

  • 特征编码逻辑错误
    你对Frequency(每周购买次数,数值型特征)使用了独热编码,这会把连续的数值拆成多个分类特征,完全破坏了它的数值属性,让线性回归无法学习到它和Amount、水果单价之间的乘法关联。
    另外,虽然对Fruit的独热编码合理,但你没有将其与Amount、Frequency构建交互项,模型只能单独学习每个特征的线性贡献,无法理解水果单价(由Fruit决定)× Amount × Frequency的组合关系。

  • 未利用已知的单价信息
    你没有将水果单价表合并到数据集,线性回归完全不知道不同水果的单价差异,只能通过独热编码的系数去间接拟合单价的影响,这会大幅降低模型的拟合精度。

  • 模型本质限制
    线性回归默认只能学习特征的线性相加关系(y = w₁x₁ + w₂x₂ + ... + b),但你的目标变量是三个特征的乘积,属于非线性的交互关系。如果不手动构建交互特征,线性回归无法自动学习这种复杂关联。

  • 代码语法错误
    你的代码存在几处语法问题,会导致模型训练使用错误的特征甚至报错:

    • freq_dummies = pdf.get_dummies(df.frequency) 中的pdf应为pd
    • df = df.drop(columns = ['fruit','frequency'] 和 df = df.drop(columns = ['total_per_week'] 缺少闭合右括号
    • 没有移除Unique_ID列,这个无关特征会干扰模型训练

而随机森林作为树模型,能自动捕捉特征间的交互关系,不需要手动构建交互项,因此能更好拟合目标变量的生成逻辑,效果自然优于线性回归。

快速修复方向

  1. 将水果单价表合并到数据集,新增单价列
  2. 保留Frequency的数值型,移除对它的独热编码
  3. 构建交互特征:Amount × Frequency × 单价(或直接用这个计算值作为特征,因为理论上目标变量等于它)
  4. 移除Unique_ID无关特征,修正代码语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:54:25