[已解决] 决定系数R2为何为负 from sklearn.metrics import r2_score

news2024/12/28 2:31:33

最近在炼丹发现一件很有趣的现象,决定系数R2竟然为负,小学生都知道任何一个常数的平方绝不可能为负,潜意识里告诉我这里面必有蹊跷,因此查阅许多资料得知,决定系数R2不是r相关系数的平方这么简单,实际上当非线性模型未捕获任何特征信息,而仅拟合随机噪声就会造成此类现象。

1、定义:

R2 决定系数(Coefficient of Determination)是一种用于评估回归模型拟合优度的指标。它表示模型能够解释数据方差的比例,通常用于比较不同模型的表现。

普遍来讲,R2决定系数的取值范围为[0,1],当R2为1时,表示模型完美预测了数据;当R2为0时,表示模型无法解释数据方差。在实际应用中,R2决定系数通常用于比较不同模型的表现,取值越接近1,表示模型解释的数据方差越多,表现越好。

以下三种公式表达含义一样,作为后续答案补充。

公式定义1:

假设有n个样本,真实值分别为y₁, y₂, ……, yₙ,预测值分别为ŷ₁, ŷ₂, ……, ŷₙ

首先定义总方差(Total Sum of Squares,TSS)为真实值y的方差,即:

TSS = Σ(yᵢ - ȳ)² / n,(i=1,2,…,n)

其中,ȳ为所有真实值的平均数。我们希望得到模型的解释方差,即预测值能够解释的数据方差。因此,定义残差平方和(Residual Sum of Squares,RSS)为:

RSS = Σ(yᵢ - ŷᵢ)² / n,(i=1,2,…,n)

其中,ŷᵢ为第i个样本预测值,yᵢ - ŷᵢ为第i个样本的残差,表示预测值与真实值之间的差。

R2决定系数为解释方差占总方差的比例,即:

R² = 1 - (RSS / TSS)

公式定义2:

公式定义3:

通过分析以上公式不难发现,当应用非线性回归模型时,SSE>SST 即预测值误差特别大,可能会导致R2为负数。

网络其他回答:

解决强多重共线性问题或设计矩阵是奇异的,R2可能为负数。

自变量、因变量间不具有线性关系会导致R2为负数。

 2、官方文档

def score(self, X, y, sample_weight=None):


"""Returns the coefficient of determination R^2 of the prediction.

The coefficient R^2 is defined as (1 - u/v), where u is the residual sum of squares ((y_true - y_pred) ** 2).sum() and v is the total sum of squares ((y_true - y_true.mean()) ** 2).sum().
The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.

def score(self, X, y, sample_weight=None):

“”“返回预测的决定系数R^2。

决定系数R^2定义为(1-u/v),其中u是残差平方和((y_true-y_pred)**2).sum(),v是平方和总和((y_true-y_true.mean())**2).sum()。 

可能的最佳分数是1.0,也可能是负数(因为模型可能更差)。一个总是预测y的期望值的常数模型,忽略输入特征,会得到0.0的R^2分数。

3、何时R² = R * R

似乎只有在有限的情况下,R² = R * R。引用相关维基百科的解释:

R²有几个定义,其中一类情况包括使用 r² 而不是 R² 的简单线性回归。当仅包含一个截距时, r² 就是观测结果和预测变量值之间的样本相关系数(即 r)的平方。如果包括其他回归系数,则 R² 是多重相关系数的平方。在这两种情况下,确定系数通常范围为0到1。 

简而言之,R²只是相关系数的平方,如果我们恰好(1)使用线性回归模型,(2) 对它们拟合的相同数据进行评估。

所以只有当线性回归模型是拟合的,并且在拟合的相同数据上对其进行评估时,我们才能期望R²在0和1之间。否则,R² 的定义可能会导致负值出现。

参考:

(10条消息) R2决定系数_决定系数r2_丰。。的博客-CSDN博客

(10条消息) R2系数浅析_enginelong的博客-CSDN博客

九道门丨扒一扒机器学习中,R² 为何会出现负数? - 知乎 (zhihu.com) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/571746.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加密后的敏感字段还能进行模糊查询吗?该如何实现?

前言 有一个问题不知道大家想过没?敏感字段数据是加密存储在数据库的表中,如果需要对这些敏感字段进行模模糊查询,还用原来的通过sql的where从句的like来模糊查询的方式肯定是不行的,那么应该怎么实现呢?这篇文章就来…

zigbee 串行通信

串口通信需要三个函数 // Initialize UART at the startup //------------------------------------------------------------------- void halUartInit(uint32 baud);//------------------------------------------------------------------- // Read a buffer from the UART …

MySQL 的锁

目录 一、锁的分类 二、全局锁、表级锁、页级锁、行级锁 三、乐观锁和悲观锁 四、共享锁和排它锁 五、意向共享锁和意向排它锁 六、间隙锁、临键锁、记录锁 锁的分类和用途 一、锁的分类 1、MySQL锁可以按模式分类为: 乐观锁悲观锁。 2、按粒度分可以分为&a…

【2023 · CANN训练营第一季】MindSpore模型快速调优攻略 第三章——MindSpore云上调试调优

1.ModelArts云上调试调优 ModelArts密钥初始化 详细教程: 初始化OBS服务 创建训练作业 2.MindSpore IDE插件效率提升 通过智能代码块推荐、代码自动补全等特性,提升MindSpore脚本开发效率,对接ModelArts云服务,实现模型训…

龙芯2K1000实战开发-时钟设计

文章目录 概要整体架构流程技术名词解释技术细节小结概要 提示:这里可以添加技术概要 本文主要结合项目方案,结合相应外设需求,设计单板时钟方案 整体架构流程 提示:这里可以添加技术整体架构 整体单板时钟方案,分为两部分。 一部分是:以CPU为核心,包括自身一些控…

VR全景智慧城市:构筑未来城市的数字化大融合

引言: 现代城市正处于数字化时代的浪潮之中,而在这个数字化浪潮中,VR全景智慧城市正以令人瞩目的方式崭露头角。随着虚拟现实(VR)技术的不断进步和智慧城市的发展需求,VR全景智慧城市作为数字技术与城市发展…

openGauss Developer Day 2023 | 邀您参加海量数据分论坛

尊敬的数据库开发者 : 海量数据 已为您备好一封通往数智时代的邀请函,请您于 5月26日 前往北京昆泰嘉瑞文化中心,赶赴 openGauss Developer Day 2023 的盛大约定。 本次专场活动中,海量数据将会轮番为您展示最核心的技术…

chatgpt赋能python:Python二次方的表示方法及其应用

Python 二次方的表示方法及其应用 介绍 Python是一种优雅、简洁、易学的编程语言,很多程序员选择使用Python开发各种应用。在计算机科学中,二次方(也称为平方)非常常见。在Python中,我们有多种方法来表示二次方。 平…

C Primer Plus第六章编程练习答案

学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出! 1.编写一个程序,创建一个包…

中小企业如何差异化“生意表达”,成为最了不起的小企业?

​如今的市场已经不是几十年前随便卖一点新鲜的玩意儿就能火爆的场景了。科技发达了,人们的眼界也开阔了,各式各样,琳琅满目的商品占据了市场空间,生意越来越饱满。 竞争趋势激烈,商品同质化现象严重。一些商家企业通过压低价格的…

docker入门(1)----服务/镜像/容器相关命令

安装 官网安装app命令行安装(但是没有图形界面app)brew install docker 架构 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像ubuntu:16.04 就包含了…

深度学习笔记之循环神经网络(七)反向传播角度观察LSTM

深度学习笔记之循环神经网络——反向传播角度观察LSTM 引言回顾加补充:通过时间反向传播 LSTM \text{LSTM} LSTM的反向传播过程场景构建示例:求解梯度 L ( T ) ∂ W X ⇒ F \begin{aligned}\frac{\mathcal L^{(\mathcal T)}}{\partial \mathcal W_{\math…

2023年第十五届B题电工杯初步解题思路

第十五届“中国电机工程学会杯”全国大学生 电工数学建模竞赛题目 B题 人工智能对大学生学习影响的评价 人工智能简称AI,最初由麦卡锡、明斯基等科学家于1956年在美国达特茅斯学院开会研讨时提出。 2016年,人工智能AlphaGo 4:1战胜韩国围棋高手李世石…

javaWeb 兼职管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh兼职管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Mye…

服务器被勒索病毒攻击怎么办,如何进行勒索病毒解密与预防工作?

在当今社会中服务器已经成为企业关键数据存储和传输的重要载体,同样也成为黑客攻击和勒索病毒的首要目标。一旦服务器被勒索病毒攻击,企业的正常运转与经济利益和核心数据都将受到威胁。下面将为大家介绍一下服务器被勒索病毒攻击后应该采取怎样的措施及…

【1091. 二进制矩阵中的最短路径】

来源:力扣(LeetCode) 描述: 给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。 二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即&…

【参考设计】16芯串联电池包储能系统

电池包的应用与技术问题 为了获得更大的能量密度,锂离子和磷酸铁锂电池在电池包中的使用越来越多,比如:电信机房的UPS单元,移动式电站,储能系统等。 锂离子和磷酸铁锂电池在提供更高的功率和能量密度的同时也需要更准…

Android深入源码分析事件分发机制流程

前言 对于Android中的触摸事件即指手指触摸到屏幕时产生的点击事件; 类型如下: MotionEvent.ACTION_DOWNMotionEvent.ACTION_UPMotionEvent.ACTION_MOVEMotionEvent.ACTION_CANCEL Android事件处理流程 主要涉及三个流程:事件采集、事件中…

电子水尺的应用

品概述 本产品是一种采用微处理器芯片为控制器,内置通讯电路的数字式水位传感器,具备高的可靠性及抗干扰性能。适用于江、河、湖、水库及蓄水池、水渠等处的水位测量使用。 本产品使用不锈钢材料做壳体防护材料,内部用高性能的密封材料进行处…

11省政企单位密集调研实在智能数字员工

当前,数字中国建设迎来前所未有的发展机遇。五月,“数字中国”建设持续如火如荼,实在智能又迎来了新的“考察团路线”:西部新宁甘云中轴线晋豫鄂湘东部鲁苏闽,来自11省,20余个“数字化改革政企考察团”&…