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

使用cross_val_score评估LinearRegression返回极大值的解决建议

解决LinearRegression交叉验证结果异常的建议

核心原因分析

普通LinearRegression基于无正则化的最小二乘法,当数据存在多重共线性(特征间高度相关)、特征维度远大于样本量,或交叉验证的样本划分极端不平衡时,模型系数会出现爆炸式增长,导致预测误差剧增——反映在neg_mean_absolute_error指标上就是极大的负值(该指标为误差的相反数,数值越大代表实际误差越大)。而Lasso的L1正则化会自动将冗余特征的系数压缩至0,规避了这类问题。

具体排查与解决步骤

  • 检查多重共线性
    用方差膨胀因子(VIF)量化特征间的共线性程度,VIF值大于10通常说明存在严重共线性:

    from statsmodels.stats.outliers_influence import variance_inflation_factor
    import pandas as pd
    
    # 假设X_train为DataFrame格式
    vif_data = pd.DataFrame()
    vif_data["feature"] = X_train.columns
    vif_data["VIF"] = [variance_inflation_factor(X_train.values, i) for i in range(X_train.shape[1])]
    print(vif_data)
    

    若存在严重共线性,可移除高度相关的特征,或用PCA进行特征降维。

  • 优化交叉验证划分策略
    cv=2的极端划分可能导致单个fold的数据分布与整体偏差极大,尝试增大折数(如5或10),或对回归任务采用分层划分:

    from sklearn.model_selection import StratifiedKFold
    import numpy as np
    
    # 按目标变量分桶实现回归分层K折
    bins = np.linspace(y_train.min(), y_train.max(), 5)
    y_binned = np.digitize(y_train, bins)
    skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
    scores = cross_val_score(Ln, X_train, y_train, scoring="neg_mean_absolute_error", cv=skf)
    print(np.mean(scores))
    
  • 添加特征标准化步骤
    虽然LinearRegression对特征尺度不敏感,但标准化能在存在共线性时让系数估计更稳定,同时对齐Lasso的训练逻辑(Lasso默认对特征尺度敏感):

    from sklearn.preprocessing import StandardScaler
    from sklearn.pipeline import make_pipeline
    
    pipeline = make_pipeline(StandardScaler(), LinearRegression())
    scores = cross_val_score(pipeline, X_train, y_train, scoring="neg_mean_absolute_error", cv=5)
    print(np.mean(scores))
    
  • 验证正则化的作用
    尝试带L2正则化的Ridge回归,确认是否是无正则化导致的问题:

    from sklearn.linear_model import Ridge
    
    ridge = Ridge(alpha=1.0)
    scores = cross_val_score(ridge, X_train, y_train, scoring="neg_mean_absolute_error", cv=5)
    print(np.mean(scores))
    

    若Ridge结果正常,则进一步验证原问题是无正则化的最小二乘对数据缺陷过于敏感。

  • 排查特征与目标的异常关系
    检查是否存在与目标变量完全无关的特征,或特征是目标变量的线性组合(这类情况会让最小二乘的解不稳定)。可通过绘制特征-目标散点图,或用树模型(如RandomForestRegressor)输出特征重要性辅助判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:20