回归模型评价指标R2_score

搞清楚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://xiahunao.cn/news/353145.html

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

相关文章

Python网络编程

查看Python中支持的编码方式:https://docs.python.org/3/library/codecs.html?highlightutf IP地址工具:http://ipblock.chacuo.net/ 查看应用程序进程PID: 1.启动任务管理器,点击进程:默认是这样的: 2…

Redis的安装等相关问题

1.1 下载 从官网下载,Redis官网点击下载 或者直接下载整合下好的: 链接:https://pan.baidu.com/s/1Vj9jNq2mh5lZLVFSVo5cFw&shflsharepset 提取码:m599 通过SecureCRT将下载的文件上传到/opt/work目录 如果上传rz不能使用…

路由器 ------ 动态路由 (1) ---- RIP

RIP : 根据Bellman-Ford算法计算路由 距离矢量型协议(DV)---- 路由器之间传递路由条目 ;距离就是开销值,矢量就是下一跳 邻居关系 ---- 相邻的两个路由器,链接在共同的广播域内,通过广播的形…

华为云HCS解决方案笔记HUAWEI CLOUD Stack【面试篇】

目录 HCS方案 一、定义 1、特点 2、优点 二、云服务 1、云管理 2、存储服务 3、网络服务 4、计算服务 5、安全服务 6、灾备服务 7、容器服务 三、应用场景 四、HCS功能层 五、OpenStack网络平面规划 六、ManageOne运维面 1、首页 2、集中监控 3、资源拓扑 …

关于Arthas如何远程监视Java程序

在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在…

NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing...

~~因为不太会使用opencv、matlab工具,所以在找一些比较简单的工具。 . 一、NLP标注工具 来源:《构想:中文文本标注工具(附开源文本标注工具列表)》 Chinese-Annotator 来源:https://github.com/crownpku/…

kube-proxy源码阅读(iptables实现)

Reference 文章目录 1 入口2 ProxyServer创建及调用3 ProxyServer 核心调用流程3.1 func (o *Options) Run() err3.2 func (o *Options) runLoop() error3.3 func (s *ProxyServer) Run() error3.4 func (proxier *Proxier) SyncLoop() 4 资源事件处理流程4.1 Service事件4.2 …

windows_删除多余网络适配器(删除/卸载多余网卡)/删除TAP虚拟网卡NIC

文章目录 Device Manager检查所有NIC状态利用资源监视器查看网卡情况接入不同网络对于计算机网络环境造成不同的影响接入传统的wifi接入手机热点的wifi Device Manager 删除指定的Network adapter(网卡又称为网络适配器)完成之后你可能需要重启才可以上网 检查所有NIC状态 包…

值得一阅的Kali系统的使用小技巧

目录 写在最前1.软件安装软件源关于AMD显卡驱动浏览器中文输入法下载工具代理软件QQSteam 2.使用优化ssh服务开启Grub修改Zsh和PowerShell命令标头修改VSCode内置终端字体间距过大问题 Aria2配置文件 写在最前 不定期更新 1.软件安装 软件源 推荐使用中科大源,官…

基于geoserver开发地图发布服务

写在前面:我在github上创建了对应的项目,可点此跳转,本文的所有源码均可在项目里找到,欢迎大家访问交流 一、开发背景 在gis领域,geoserver是后端地图发布的开源项目。目前我们在启动服务后,可通过自带的…

CIPSTAT

AT_TCPIP_CmdFunc_CIPSTART //start up tcpip connection 1)if (gCipBearer ! BEARER_WIFI) 承载是GPRS(1)还是WIFI(2),若非WIFI,获取SimStatus 2)if ((!cipMux_multiIp && (CIP_INITIALg_uCipContexts.nBeare…

Cloud Computing:云计算的简介、必要性以及安全上云与企业数字化转型(从陈坤/辛芷蕾主演电视剧《输赢》看云计算的未来)的关系

Cloud Computing:云计算的简介、必要性以及安全上云与企业数字化转型(从陈坤/辛芷蕾主演电视剧《输赢》看云计算的未来)的关系 目录 云计算的简介、必要性以及安全上云与企业数字化转型(从陈坤/辛芷蕾主演电视剧《输赢》看云计算的未来)的关系 从陈坤/辛芷蕾主演电…

relation-graph关系图谱组件2.0版本遇到的问题

前提:之前已经写过一篇1.1版本的问题,这里就不过多讲了(如果想要解决火狐低版本兼容,看那个就行) 这次主要讲的是和1.X版本的区别和一些其它问题 区别 参数名不同:以前的links>lines (虽然现在links也…

高压放大器在微流控技术的应用研究

随着微流控技术的不断发展,其在生物医学、环境监测、化学分析等领域中的应用越来越广泛,也对相关器件的性能提出了更高的要求。其中,高压放大器作为一种电子元器件,在微流控技术中具有重要的作用。下面安泰电子将从高压放大器在微…

仙境传说RO:添加商店物品教程

仙境传说RO:添加商店物品教程 我是艾西,今天跟大家分享下仙境传说RO游戏中我们自己怎么创建商店卖东西装备等,首先看看下图以及自己创建商店时需要在文档里创建的脚本格式 //*------------------shop普通商店------------------ //带坐标的…

Java养成类小游戏

此周是做项目 做一个java的养成类的小游戏 我是用控制台写的小游戏 建了很多的UI地图,部分代码, 然后让我们来看实现的样子: 好啦,部分内容就到这啦 早点洗洗睡叭!

Java游戏合集

游戏1:猜数字小游戏: import java.util.Scanner; class GuessNumber{public static void main(String args[]){int number (int)(Math.random()*100)1;System.out.println("请输入一个数据(1-100)用于猜数字。");whil…

JAVA学习之路-简单的城堡游戏(一)

简单的文字城堡游戏(一) 最近在学习后台的一些功能,发现自己的基础不是很牢固,所以想写点小程序,巩固一下以前学的知识,融合一下。 之前在慕课上学的课程中就有一个这样的小程序,写一个简单的…

Nginx的优化,安全与防盗链

目录 一、Nginx的页面优化 1)Nginx的网页压缩 2)配置Nginx的图片缓存 3)Nginx的连接超时设置 4)Nginx的并发设置 查看cpu的核心数,根据核心数来设置工作进程数 修改工作进程核心数 : 测试结果&…

java做RPG小游戏

题目 java课设,一个游戏中有多种角色(Character),例如:国王(King)、皇后(Queen)、骑士(Knight)、老怪(Troll)。 角色之间可能要发生战斗(fight)&…