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

Python机器学习中RMSE与MAE持续为0的问题排查求助

线性回归RMSE/MAE为0的排查方案

以下是针对你遇到的线性回归模型误差全为0的问题,具体的排查步骤:

  • 检查特征矩阵X是否包含目标变量或完全相关特征
    你代码中X是通过store1.drop()得到的,需确认是否误将目标列Weekly_Sales留在了X中,或者存在与Weekly_Sales完全线性相关的特征。可以执行以下代码验证:

    # 查看X的所有列名
    print(X.columns)
    # 计算X各特征与y的相关性
    print(store1[X.columns].corrwith(y))
    

    如果输出中有相关系数为1的特征,说明该特征与目标变量完全线性相关,模型自然能完美预测。

  • 验证数据划分与样本匹配
    检查训练集、测试集的样本数量是否匹配,避免索引错位导致的异常:

    print(f"训练集样本数:X_train={X_train.shape[0]}, y_train={y_train.shape[0]}")
    print(f"测试集样本数:X_test={X_test.shape[0]}, y_test={y_test.shape[0]}")
    

    同时可以查看测试集的真实值与预测值是否完全一致:

    import pandas as pd
    compare = pd.DataFrame({'真实值': y_test.values[:10], '预测值': y_pred[:10]})
    print(compare)
    
  • 检查目标变量y的取值特性
    如果目标变量Weekly_Sales的所有取值完全相同,模型只需预测该固定值即可得到零误差。执行以下代码确认:

    print(f"y的唯一值数量:{y.nunique()}")
    print(f"y的取值范围:{y.min()} 到 {y.max()}")
    
  • 检查数据预处理环节
    虽然你使用了StandardScaler,但需确认缩放过程是否未对数据造成异常(比如缩放后特征全部变为0,但这种情况概率极低)。可以查看X_sc的部分数据:

    print(X_sc[:5])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:43:16