0

0

如何正确理解并解读非线性回归中的负R²分数

碧海醫心

碧海醫心

发布时间:2026-01-18 10:29:16

|

277人浏览过

|

来源于php中文网

原创

如何正确理解并解读非线性回归中的负R²分数

r²分数并非总在0–1之间;当模型拟合效果比简单用均值预测更差时,r²会为负值——这表明当前非线性函数形式或参数初值严重偏离数据规律。

在使用 sklearn.metrics.r2_score 评估非线性回归模型(如您对 kc_house_data 构建的指数型函数)时,出现负值(如 -59.51)并非报错,而是模型性能的客观警示。R² 的数学定义为:

[ R^2 = 1 - \frac{\sum_i (y_i - \hat{y}_i)^2}{\sum_i (y_i - \bar{y})^2} ]

其中分母是“基准误差”(用目标变量均值 $\bar{y}$ 预测的残差平方和),分子是模型预测残差平方和。只有当分子 0;若模型预测比直接输出均值还差(即残差更大),则 R²

在您的代码中,问题根源在于:

  1. 函数形式与数据不匹配
    您定义的 log(a, Beta_1, Beta_2, Beta_3) = Beta_1 * (Beta_2^a) + Beta_3 是严格单调指数增长函数,但房价与归一化“combined”特征之间通常存在复杂非线性关系(如饱和、局部极值、异方差),强行用单指数拟合极易产生系统性偏差。

  2. 未使用拟合后的最优参数进行预测
    您调用 curve_fit 得到了最优参数 popt,但在计算 R² 前却用初始猜测值(beta_1=1, beta_2=1.5, beta_3=0.1)生成了 y_pred,而最终 r2_score 中的 y 实际是用 *popt 在新 x 上预测的拟合曲线(且 x 范围 [4,12] 与原始 x_data_norm 不一致)。这导致 y_data_norm 和 y 完全不对应,R² 失去可比性。

✅ 正确做法应为:

Designs.ai
Designs.ai

AI设计工具

下载
# 确保预测值与真实值维度、顺序严格一致
y_pred_fitted = log(x_data_norm, *popt)  # 使用拟合参数,在原始x上预测
r2 = r2_score(y_data_norm, y_pred_fitted)
print(f"Correct R²-score: {r2:.4f}")  # 才是模型真实解释力

⚠️ 更关键的是:负 R² 提示需重新审视建模策略

  • 检查特征工程是否合理(如 "combined" 是简单线性叠加,可能掩盖交互效应);
  • 尝试更稳健的非线性模型(如梯度提升树 XGBRegressor、核岭回归 KernelRidge 或分段函数);
  • 对比线性基线(如 LinearRegression)的 R²,确认非线性是否真有增益;
  • 可视化残差图(y_data_norm - y_pred_fitted vs x_data_norm),识别系统性偏差模式。

总之,R² 为负不是 sklearn 的异常,而是模型失效的明确信号。它敦促我们回归数据本质——检验假设、迭代函数形式、验证预测一致性,而非机械套用指标。

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

68

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

123

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

85

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

20

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

11

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

47

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
誉天教育RHCE视频教程
誉天教育RHCE视频教程

共9课时 | 1.4万人学习

尚观Linux RHCE视频教程(二)
尚观Linux RHCE视频教程(二)

共34课时 | 5.7万人学习

尚观RHCE视频教程(一)
尚观RHCE视频教程(一)

共28课时 | 4.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号