回归模型的score得分为负_深度研究:回归模型评价指标R2_score

回归模型的性能的评价指标主要有:RMSE(平方根误差)、MAE(平均绝对误差)、MSE(平均平方误差)、R2_score。但是当量纲不同时,RMSE、MAE、MSE难以衡量模型效果好坏。这就需要用到R2_score,实际使用时,会遇到许多问题,今天我们深度研究一下。

预备知识

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

若用 表示真实的观测值,用 表示真实观测值的平均值,用 表示预测值,则:

回归平方和:SSR

即估计值与平均值的误差,反映自变量与因变量之间的相关程度的偏差平方和

残差平方和:SSE

即估计值与真实值的误差,反映模型拟合程度

总离差平方和:SST

即平均值与真实值的误差,反映与数学期望的偏离程度

R2_score计算公式

R^2 score,即决定系数,反映因变量的全部变异能通过回归关系被自变量解释的比例。计算公式:

进一步化简

分子就变成了常用的评价指标均方误差MSE,分母就变成了方差。

对于 可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。

R2_score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好。

R2_score = 0。此时分子等于分母,样本的每项预测值都等于均值。

R2_score不是r的平方,也可能为负数(分子>分母),模型等于盲猜,还不如直接计算目标变量的平均值。

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()

r2_score: 0.47

8b39b498d7489d9ff030a5479af46fb5.png

r2_score偏小,预测效果一般。

注意事项

1、 一般用在线性模型中(非线性模型也可以用)

2、 不能完全反映模型预测能力的高低,某个实际观测的自变量取值范围很窄,但此时所建模型的R2 很大,但这并不代表模型在外推应用时的效果肯定会很好。

3、数据集的样本越大,R越大,因此,不同数据集的模型结果比较会有一定的误差,此时可以使用Adjusted R-Square (校正决定系数),能对添加的非显著变量给出惩罚:

n是样本的个数,p是变量的个数

Reference

https://zhuanlan.zhihu.com/p/36305931 https://blog.csdn.net/Dear_D/article/details/86144696

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

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

相关文章

DFS应用——遍历无向图

【0】README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 如何对无向图进行深度优先搜索 的idea 并用源代码加以实现; 0.2) 本文还引入了 背向边(定义见下文描述)&#x…

高效的磁力搜索引擎 -_高效的企业测试-结论(6/6)

高效的磁力搜索引擎 -该系列的最后一部分将涵盖其他端到端测试,生产中的测试以及各部分的结论。 进一步的端到端测试和生产中的测试 除了仅验证单个被测应用程序并模拟外部问题的系统测试之外,我们的管道还必须包括完整的端对端测试,以验证…

linux安装mysql phpmyadmin_ubuntu mysql远程连接+phpmyadmin安装

一、如何让ubuntu上的mysql允许远程连接进入MySQL,执行如下命令:use mysql;GRANT ALL PRIVILEGES ON *.* TO username% IDENTIFIED BY password WITH GRANT OPTION;flush privileges; //刷新select host,user from user; //查看是否成功退出mysql;打开su…

DFS应用——找出无向图的割点

【0】README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 “DFS应用于找割点” 的idea 并用源代码加以实现; 0.2) 必须要事先 做个specification的是:对于给定图的除开起始vertex的那…

spock测试_将Spock 1.3测试迁移到Spock 2.0

spock测试了解Spock 2.0 M1(基于JUnit 5)的期望,如何在Gradle和Maven中迁移到它以及为什么报告发现的问题很重要:)。 重要说明 。 我绝对不建议您永久将您的现实项目迁移到Spock 2.0 M1! 这是2.x的第一个&…

mysql与jmeter环境变量配置_Java开发技术大杂烩(一)之Redis、Jmeter、MySQL的那些事...

前言毕业答辩告一段落,接下来好好努力工作。Redis遇到的一些问题DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections …

DFS应用——寻找欧拉回路

【0】README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 “DFS应用——寻找欧拉回路” 的idea 并用源代码加以实现 (源代码,我还没有找到一种有效的数据结构和DFS进行结合,往后会po出…

wiremock 使用_使用WireMock进行更好的集成测试

wiremock 使用无论您是遵循传统的测试金字塔还是采用诸如“ 测试蜂窝”这样的较新方法,都应该在开发过程中的某个时候开始编写集成测试。 您可以编写多种类型的集成测试。 从持久性测试开始,您可以检查组件之间的交互,也可以模拟调用外部服务…

mysql备份七牛云存储_定时备份 Mysql并上传到七牛的方法

多数应用场景下,我们需要对重要数据进行备份、并放置到一个安全的地方,以备不时之需。常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份)、mysqldump 全量逻辑备份、xtrabackup 增量逻辑备份等。常见的数据存储方式有…

jetty java_Jetty,Java和OAuth入门

jetty java使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 今天尝试Okta。 Jetty是一个小型,高度可扩展的基于Java的Web服务器和servlet引擎。 它支持HTTP / 2&#xff0c…

DFS应用——查找强分支

【0】README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 “DFS应用——查找强分支” 的idea 并用源代码加以实现 ; 【1】查找强分支 1.1)如何检测一个图是否是强连通的: 通过执行两…

python中的super用法详解_Python中super函数用法实例分析

本文实例讲述了python中super函数用法。分享给大家供大家参考,具体如下:这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简单说, super函数是调用下一个父类(超类)并返回该父类实例的方法. 这里的下…

java 管理多个进程_管理多个Java安装

java 管理多个进程随着越来越多的Java版本发布,在本地环境中管理多个Java安装将变得更加有趣。 不同的项目可能需要不同的Java版本。 jenv项目是管理Java安装的便捷方法。 它可以在全局,目录和外壳程序级别上设置本地Java安装,并使用易于记忆…

NP-完全性介绍

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff0c; 旨在 理解 “NP-完全性” 的idea &#xff1b; 【1】难与易 1.1&#xff09;不可判定问题&#xff1a;正如实数不足以表示 x^2 < 0 的解那样&#xff0c;可以证明&#xff0c; 计算机不可能解决碰…

python发邮件给多个人发送消息_python发送邮件(带附件)、发送给多人、抄送给多人的示例...

python发送邮件(带附件)、发送给多人、抄送给多人的示例#!/usr/bin/env python# -*-encoding: utf-8 -*-import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMEText#image包可以发送图片形式的附件# from email.mime.image import MI…

camel apache_Apache Camel 3只有2个月的路程

camel apache骆驼队正忙于为 Apache Camel 3.今天&#xff0c;第二个候选版本已构建并发布在暂存库中&#xff0c;供早期的适配器尝试 。 当我自己很忙的时候&#xff0c;我只想写一篇简短的博客文章&#xff0c;以使社区了解Apache Camel 3即将发布&#xff0c;并且我们希望…

浅谈java代理

【0】README 0.1&#xff09; 本文描述源代码均 转自 core java volume 1&#xff0c; 旨在理解 java代理机制 的基础知识&#xff1b; 【1】代理相关 1.1&#xff09;利用代理可以在运行时创建一个实现了一组给定接口的新类&#xff0c; 这种功能只有在 编译时无法确定需要实…

织梦mysql安装教程视频教程_织梦DedeCMSV6系统安装步骤教程

DedeCMSV6系统基于PHP7.*MySQL开发&#xff0c;本篇文档将介绍如何下载DedeCMSV6系统&#xff0c;并且通过之前已经部署好的系统环境来安装配置一个安全的站点。准备工作&#xff1a;主机一台(PHP7.0以上MYSQL)域名(做好解析绑定工作)源码下载通过DedeCMSV6系统下载页面可以获取…

无法创建t的通用数组_创建通用数组的问题

无法创建t的通用数组在这篇文章中&#xff0c;我们将介绍一篇全面的文章&#xff0c;其中介绍了创建通用数组的问题。 Java编程语言于2004年9月在Java 5.0“ Tiger”发行版中添加了泛型。 泛型或类型参数化系统在提供类型安全性的同时扩展了Java现有的类型系统。 1.简介 Java具…

贪婪算法+小应用(调度问题)

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff0c; 旨在 理解 “DFS应用——贪婪算法” 的idea&#xff1b; 【1】贪婪算法 1.1&#xff09;已经看到的三个贪婪算法&#xff1a; Dijkstra算、Prim算法 和 Kruskal 算法&#xff1b;&#xff08;Dijkstr…