回归模型评价指标R2_score

news2024/11/17 21:17:15

搞清楚R2_score计算之前,我们还需要了解几个统计学概念。

若用 y i y_i yi表示真实的观测值,用 y ˉ \bar{y} yˉ表示真实观测值的平均值,用 y i ^ \hat{y_i} yi^表示预测值,则:

回归平方和:SSR
在这里插入图片描述
即估计值与平均值的误差,反映自变量与因变量之间的相关程度的偏差平方和。

残差平方和:SSE
在这里插入图片描述
即估计值与真实值的误差,反映模型拟合程度。

总离差平方和:SST
在这里插入图片描述
即平均值与真实值的误差,反映与数学期望的偏离程度

R2_score 计算公式
R2_score,即决定系数,反映因变量的全部变异能通过回归关系被自变量解释的比例。计算公式:
在这里插入图片描述

R 2 = 1 − ∑ i = 1 n ( y i − y i ^ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum\limits_{i=1}^{n} (y_i - \hat{y_i})^2}{\sum\limits_{i=1}^{n} (y_i - \bar{y})^2} R2=1i=1n(yiyˉ)2i=1n(yiyi^)2
进一步化简

R 2 = 1 − ∑ i = 1 n ( y i − y i ^ ) 2 / n ∑ i = 1 n ( y i − y ˉ ) 2 / n = 1 − R M S E V a r R^2 = 1 - \frac{\sum\limits_{i=1}^{n}(y_i - \hat{y_i})^2/ n}{\sum\limits_{i=1}^{n}(y_i - \bar{y})^2 / n} = 1 - \frac{RMSE}{Var} R2=1i=1n(yiyˉ)2/ni=1n(yiyi^)2/n=1VarRMSE
分子就变成了常用的评价指标均方误差RMSE,分母就变成了方差。
对于 R 2 R^2 R2可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。
R2_score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好。
R2_score = 0。此时分子等于分母,样本的每项预测值都等于均值。
R2_score不是r的平方,也可能为负数(分子>分母),模型等于盲猜,还不如直接计算目标变量的平均值。

R 2 R^2 R2_score使用方法
根据公式,我们可以写出r2_score实现代码

1 - mean_squared_error(y_test,y_preditc)/ np.var(y_test)

也可以直接调用sklearn.metrics中的r2_score

sklearn.metrics.r2_score(y_true, y_pred, sample_weight=None,multioutput='uniform_average')
#y_true:观测值
#y_pred:预测值
#sample_weight:样本权重,默认None
#multioutput:多维输入输出,可选‘raw_values’, ‘uniform_average’, ‘variance_weighted’或None。
# 默认为’uniform_average’;
raw_values:分别返回各维度得分
uniform_average:各输出维度得分的平均
variance_weighted:对所有输出的分数进行平均,并根据每个输出的方差进行加权。

sklearn.metrics.r2_score使用方法

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import r2_score
#导入数据
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
diabetes_X = diabetes_X[:, np.newaxis, 2]
#划分测试集验证集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
# 创建线性回归模型
regr = linear_model.LinearRegression()
# 训练模型
regr.fit(diabetes_X_train, diabetes_y_train)
# 预测
diabetes_y_pred = regr.predict(diabetes_X_test)
# 模型评价
print('r2_score: %.2f'
      % r2_score(diabetes_y_test, diabetes_y_pred))
# 绘制预测效果图
plt.scatter(diabetes_X_test, diabetes_y_test,  color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()

来源:https://blog.csdn.net/jpld/article/details/103526882

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

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

相关文章

chatgpt赋能python:Python后退对SEO的影响

Python后退对SEO的影响 Python作为一种流行的编程语言,在各种应用场景中都有着广泛的应用。但是,对于一些需要考虑SEO优化的网站来说,Python后退往往被认为是一个不利因素。那么,Python后退对SEO究竟有什么影响,我们来…

GS2972(3G-SDI)视频输出驱动调试

GS2972视频输出调试 GS2972的硬件初始化GS2972的驱动时序GS2972的驱动RTL代码GS2972输出彩条GS2972驱动易出bug GS2972的硬件初始化 GS2972是HD-SDI/3G-SDI视频、音频串化器。其使用非常简单,但是要想把该芯片驱动起来,真心不容易。需要了解相关视频标准…

如何打造微信私域?

现如今,微信已经从社交通讯软件,慢慢被默认为常规办公软件,工作沟通、业务洽谈、网络会议等都在微信上进行,完全变成职场首选的社交工具。 然而,由于微信平台的限制,很多企业在微信私域营销方面遇到了很多…

2023年最佳AI文案神器Top 8

无论你是否准备好,它们都已经来了。如果你知道如何使用它们,AI文案工具可以成为你的新朋友。 现在AI文案工具无处不在,眼花缭乱,从内容生成器到电子商务聊天机器人。原因很简单:AI可以节省大量时间和金钱。这是我们都喜…

2018 年一月联考逻辑真题

2018 年一月联考逻辑真题 三、逻辑推理:第 26-55 小题,每小题 2 分,共 60 分。下列每題给出的A.、 B.、C.、D.五个选项中,只有一项是符合试题要求的。请在答题卡上将所选项的字母涂黑。 真题(2018-26)-翻译…

5年软件测试工程师工作感悟,谁还能“点点点”一辈子呢?

经常都有人问我软件测试前景怎么样,每年也都帮助很多朋友做职业分析和学习规划,也很欣慰能够通过自己的努力帮到一些人进入到大厂。 2023年软件测试行业的发展现状以及未来的前景趋势 最近很多测试人在找工作的时候,明显的会发现功能测试很…

JAVA开发(神乎其神的区块链技术之数据上链)

这是我第二遍写关于区块链的博文,前一篇文章《神乎其神的区块链概念和技术》主要介绍区块链的由来和基本概念。因为博主最近在做一个区块链项目,所以有时候也遇到一些概念性的知识需要去理解,比如数据的上链。谈到数据上链,我们先…

【Linux】Nginx 优化与防盗链

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Nginx 优化与防盗链 一、隐藏版本号方法一:修改配置文件方式方法二:修改源码文件,重新编译安装 二、修改用户与组三、缓存时间四、日志切割…

前端自动化测试基础概念与方案

测试的类型 常见的测试类型主要有以下几种: 单元测试:验证独立单元是否能正常工作集成测试:验证多个单元协同工作端到端测试:从用户角度以机器的方式在真实浏览器环境验证应用交互快照测试:验证程序的UI变化 单元测…

Bert+FGSM中文文本分类

我上一篇博客已经分别用BertFGSM和BertPGD实现了中文文本分类,这篇文章与我上一篇文章BertFGSM/PGD实现中文文本分类(Loss0.5L10.5L2)_Dr.sky_的博客-CSDN博客的不同之处在于主要在对抗训练函数和embedding添加扰动部分、模型定义部分、Loss函数传到部分…

消费全返系统开发模式,是一种怎样的营销工具?

消费返利其实就是通过将消费者的部分或全部消费金额折返的方式,来刺激消费者二次乃至多次购买,返利形式则多种多样,包括现金、礼品卡和奖励积分等。这种模式已经在市场上广泛应用,几乎所有行业包括零售、旅游和餐饮等都在用这种模…

第十三届山东省ICPC D题负重越野(贪心)

题目: Problem D. 负重越野 您正在参加一场团体越野比赛。您的队伍共有 n 名队员,其中第 i 名队员的速度为 vi,体重为 wi。 比赛允许每名队员独立行动,也允许一名队员背着另一名队员一起行动。当队员 i 背着队员 j 时&#xff0c…

【Java】一文搞懂生产者和消费者模型

阻塞队列的概念生产者消费者模式消息队列消息队列的作用 JDK中的阻塞队列实现阻塞队列实现生产者消费者模型 阻塞队列的概念 之前介绍过队列,是一种数据结构,先进先出FIFO。阻塞队列也满足队列的特性,不过有特殊之处: 入队元素时…

用好ChatGPT,还得加点“料”

前言 关于ChatGPT或者类似的产品,相信绝大数的小伙伴已经有自己资源进行使用了,虽然可以通过简单的对话方式能获取到相关的信息,但其实里面还是有一些讲究的,毕竟AI始终不是人类,要让它更好的理解我们组织的语言&…

使用Transformer模型进行计算机视觉任务的端对端对象检测

Transformer模型是google团队在2017在论文attention is all you need中提出的一个用于NLP领域的模型,但是随着VIT模型与Swin Transformer模型的发布,把Transformer模型成功应用到计算机视觉任务中。 上期图文,我们使用hugging face的transformers模型进行了VIT模型的对象分…

Nginx:Rewrite

Nginx:Rewrite 一、常用的Nginx 正则表达式二、location2.1 location 大致可以分为三类2.2 location 常用的匹配规则2.3 location 优先级2.4 实际网站使用中,至少有三个匹配规则定义 三、rewrite3.1 rewrite功能3.2 rewrite跳转实现3.3 rewrite 执行顺序…

【大作业之爬虫实战+数据分析与可视化处理上】——案例——如桃花来

目的任务: 目的任务 爬取租房网对应元素: 租房名 每月的价格 室内规格构造 房间大小 交通信息 保存数据到excel表格中 做数据清洗 数据可视化呈现 设计要求: 设计要求: 以类的方式书写,简洁明了。能够促进学生…

技术分享 | App常见bug解析

【摘要】 功能Bug内容显示错误前端页面展示的内容有误。这种错误的产生有两种可能1、前端代码写的文案错误2、接口返回值错误功能错误功能错误是在测试过程中最常见的类型之一,也就是产品的功能没有实现。比如图中的公众号登录不成功的问题。界面展示错乱产品界面上…

海睿思分享 | 摆脱数据质量低下困扰,这个方法简单有效!

2019年五月,某企业数据服务平台推送了运营花呗的蚂蚁小微小额贷款有限公司进入清算程序。 究其原因,该数据服务平台抓取了不真实且不完整的数据,导致生成的数据质量低,信息不真实、存在法律合规风险等情况。 由于支付宝和花呗的…

飞浆AI studio人工智能课程学习(4)-优质Prompt分享

文章目录 最具商业价值Prompt分享与颁奖02最具商业价值Prompt分享与颁奖-Top102最具商业价值Prompt分享与颁奖-Top202最具商业价值Prompt分享与颁奖-Top302最具商业价值Prompt分享与颁奖-Top402最具商业价值Prompt分享与颁奖-Top502最具商业价值Prompt分享与颁奖-Top602最具商业…