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

Scikit-learn线性回归交叉验证得分负值原因及计算方式咨询

线性回归交叉验证得分负值的原因解析

首先明确:回归任务的得分不是分类准确率

你提到的(TP + TN - FP - FN)/样本量是分类任务的准确率计算方式,但你用的是线性回归(回归任务),cross_val_score默认调用模型的score方法,也就是R²决定系数,计算公式为:

R² = 1 - (Σ(y_true - y_pred)² / Σ(y_true - y_mean)²)

其中:

  • Σ(y_true - y_pred)²:预测值与真实值的残差平方和(SS_res)
  • Σ(y_true - y_mean)²:真实值与全体样本均值的平方和(SS_tot)

为什么会出现负得分?

R²的取值范围是(-∞, 1]:

  • 当模型预测效果和“直接用样本均值当预测结果”完全一致时,R²=0
  • 当模型预测比“猜均值”还差时,残差平方和SS_res会大于SS_tot,此时1减去一个大于1的数,结果就会变成负数。
    比如某一交叉验证折里,样本分布极端(小样本下抽到的都是异常点),模型完全无法拟合数据,预测效果还不如直接用均值,就会出现负分。

为什么cv值增大,平均得分会下降?

当你把cv设为100时,每个折的训练集样本量仅为总样本数的1/100,样本量极小:

  • 线性回归在小样本上极易过拟合,或者因为数据代表性不足,根本学不到有效规律,泛化能力急剧下降
  • 小样本的随机性极强,个别折的数据分布可能和整体偏差极大,导致模型在该折的测试集上表现极差,直接拉低了平均得分

实用建议

  • 回归任务优先用5折或10折交叉验证(行业通用,样本量足够时能平衡偏差与方差)
  • 先对特征做预处理:比如用StandardScaler做标准化,线性回归对特征尺度敏感,不同尺度的特征会干扰系数学习
  • 检查数据:是否存在缺失值、异常值,这些会严重影响模型拟合效果
  • 可以定位负得分对应的折数据,查看是不是数据分布异常或样本量过小导致的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:22:12