二分类问题中的性能指标【python,机器学习,算法】

平均绝对误差(MAE)

平均绝对误差(Mean Absolute Error, MAE)是衡量模型预测误差的一种方法,通常用于回归分析。它表示的是预测值与真实值之间差的绝对值的平均数。计算公式如下:
M A E = 1 N ∑ i = 1 N ∣ y i − y ^ ∣ MAE=\frac{1}{N}\sum\limits_{i=1}^{N}|y_i-\hat{y}| MAE=N1i=1Nyiy^,
其中 y i y_i yi表示第 i i i个数据的预测值, y ^ \hat{y} y^表示第 i i i个数据的真实值。

平均绝对误差的特点是:

  1. 它是一个非负数,且MAE值越小,说明预测模型的效果越好。
  2. MAE 使用的是绝对值,因此它不会因为异常值而受到影响,这一点比均方误差(Mean Squared Error, MSE)更有优势。
  3. MAE的单位与原数据的单位相同,这使得它具有更好的解释性。

MAE通常用于评估模型在预测连续值时的性能,例如在天气预报、股票价格预测等领域。

均方误差(MSE)

均方误差(Mean Squared Error, MSE)是另一种衡量模型预测误差的方法,常用于回归分析。它是预测值与真实值之间差的平方的平均数。计算公式如下:
M S E = 1 N ∑ i = 1 N ( y i − y ^ ) 2 MSE=\frac{1}{N}\sum\limits_{i=1}^{N}(y_i-\hat{y})^2 MSE=N1i=1N(yiy^)2
均方误差的特点是:

  1. 它是一个非负数,且MSE值越小,说明预测模型的效果越好。
  2. MSE 使用的是平方,因此它会对较大的误差给予较大的权重,这意味着大的误差会对MSE产生较大的影响。
  3. MSE的单位是原数据单位的平方,这使得它在解释上不如平均绝对误差直观。
  4. MSE通常用于评估模型在预测连续值时的性能,特别是在关注较大误差的情况下。与MAE相比,MSE对异常值更为敏感,因此在异常值较多的情况下,使用MSE可能会导致模型性能评估的不准确。

在实际应用中,MSE的一个优点是它在数学上更容易处理,特别是当涉及到梯度下降等优化算法时。此外,MSE是最小二乘法的基础,这是一种常用的参数估计方法。

R 平方( R 2 R^2 R2

R平方(R²或R2),也称为决定系数,是衡量回归模型拟合优度的一个统计量。它表示因变量的变异中有多少可以被自变量解释。R平方的值范围从0到1,或者以百分比形式表示从0%到100%。

R平方的计算通常基于均方误差(MSE):
R 2 = 1 − M S E m o d e l M S E n u l l R^2=1-\frac{MSE_{model}}{MSE_{null}} R2=1MSEnullMSEmodel,
其中 M S E m o d e l MSE_{model} MSEmodel表示模型的均方误差, M S E n u l l MSE_{null} MSEnull表示以实际值的均值作为 y ˉ \bar{y} yˉ来计算的 MSE 值。

R平方的解释如下:

  • 𝑅^2=0:表示模型没有任何解释能力,因变量的变异不能由自变量解释。
  • 0<𝑅^{2}<1:表示模型可以解释因变量的一部分变异,R平方越接近1,模型的解释能力越强。
  • 𝑅^2=1:表示模型完美地解释了因变量的所有变异。

虽然R平方是一个常用的统计量,但它也有一些局限性:

  1. R平方不告诉我们在实践中模型的表现如何,它只是衡量了模型对数据的拟合程度。
  2. R平方不说明因果关系,即使R平方很高,也不能断定自变量导致了因变量的变化。
  3. R平方对数据中的异常值非常敏感,因为异常值会增加模型的 MSE。
  4. R平方随着自变量的增加而增加,即使这些自变量对模型没有实际贡献,因此可能会产生误导。

在实际应用中,我们应该谨慎地使用R平方,并结合其他统计量和模型诊断工具来全面评估模型的性能。

可以借助sklearn库计算这些指标:

from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_scoreX_actual = [5, -1, 2, 10]
Y_predict = [3.5, -0.9, 2, 9.9]
print('R Squared =', r2_score(X_actual, Y_predict))
print('MAE =', mean_absolute_error(X_actual, Y_predict))
print('MSE =', mean_squared_error(X_actual, Y_predict))

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

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

相关文章

MacOS 上安装和管理 Node.js

在 macOS 上安装和管理 Node.js&#xff0c;使用 Node Version Manager (NVM) 是一种简便且高效的方法。NVM 允许您轻松地安装、切换和管理不同版本的 Node.js。本指南将带您一步步完成这一过程。 步骤 1&#xff1a;安装 Node Version Manager (NVM) 首先&#xff0c;我们需…

电巢科技CIOE中国光博会:激光雷达技术应用研讨会圆满落幕!

2024年6月20日&#xff0c;由CIOE中国光博会与电巢科技联合主办的“激光雷达技术应用”线上研讨会成功举行。本次线上研讨会是CIOE中国光博会与电巢科技首次联合主办的论坛&#xff0c;旨在借助双方自身资源优势&#xff0c;为行业发展提供可靠的交流平台。接下来&#xff0c;C…

Android焦点机制结合WMS

文章前提&#xff1a; 了解WMS基本作用了解window的概念&#xff0c;phoneWindow&#xff0c;rootViewImpl了解view的事件分发 开始&#xff1a; 讲三件事情&#xff1a; window的创建&#xff0c;更新焦点的更新事件的分发 Window的创建&#xff0c;更新&#xff1a; wi…

基于 Redis 实现秒杀资格判断,提升并发性能

在互联网电商平台上&#xff0c;秒杀活动往往会吸引大量用户同时抢购&#xff0c;如何高效地处理高并发请求&#xff0c;保证用户体验&#xff0c;是一个重要的技术挑战。本文将介绍如何基于 Redis 实现秒杀资格的判断&#xff0c;提高并发性能。 基本思路 秒杀活动的核心流程…

AI 编程还有前景嘛?

自从各个大厂相继出品 AI 编程助手之后&#xff0c;AI 在编程领域的发展&#xff0c;可谓是几无寸进。 相比于 AI 在多模态领域火热&#xff0c;AI 在编程领域的热度已经完全下来了。 阿七在公众号搜索了关键词「AI编程」&#xff0c;发现搜索出来的公众号寥寥无几&#xff0…

LLM生成模型在生物蛋白质应用:ESM3

参考&#xff1a; https://github.com/evolutionaryscale/esm 通过GPT模型原理&#xff0c;输入蛋白质序列等模态输出预测的蛋白质序列及结构 使用 参考&#xff1a;https://colab.research.google.com/github/evolutionaryscale/esm/blob/main/examples/generate.ipynb#sc…

(六)使用统计学方法进行变量有效性测试(43道选择题)

本文整理了使用统计学方法进行变量有效性测试相关的练习题&#xff0c;共43道&#xff0c;适用于想巩固理论基础的同学。来源&#xff1a;如荷学数据科学题库&#xff08;CDA二级-第7章&#xff09;。 1&#xff09; 2&#xff09; 3&#xff09; 4&#xff09; 5&#xff09;…

【无人机三维路径规划】基于树木生长算法TGA实现复杂城市地形下无人机避障三维航迹规划附Matlab代码

% 定义无人机起始位置和目标位置 start_point [0, 0, 0]; % 起始位置 [x, y, z] target_point [100, 100, 100]; % 目标位置 [x, y, z] % 定义城市地形和障碍物信息 city_map imread(‘city_map.png’); % 城市地形图像 obstacles [ 20, 30, 10; % 障碍物1位置 [x, y, z] …

三分之一的违规行为未被发现

Gigamon 调查显示&#xff0c;随着漏洞的针对性越来越强、越来越复杂&#xff0c;企业在检测漏洞方面也面临越来越大的困难&#xff0c;超过三分之一的企业表示&#xff0c;现有的安全工具无法在漏洞发生时检测到它们。 随着混合云环境变得越来越复杂&#xff0c;以及恶意行为…

Java 语言特定指南

Java 语言特定指南 本 Java 入门指南将教您如何使用 Docker 创建一个容器化的 Spring Boot 应用程序。在本模块中&#xff0c;您将学习如何&#xff1a; 使用 Maven 容器化并运行一个 Spring Boot 应用程序设置本地开发环境以将数据库连接到容器、配置调试器&#xff0c;并使…

筛斗数据:引领未来,以技术创新推动在线推广新纪元

在数字化浪潮的推动下&#xff0c;企业在线推广已成为市场拓展的关键手段。然而&#xff0c;在海量信息中精准定位目标用户&#xff0c;有效提升转化率&#xff0c;却是一大挑战。筛斗数据&#xff0c;作为一家专注于数据提取与分析的技术公司&#xff0c;正以其独特的技术优势…

云计算基础知识

前言&#xff1a; 随着ICT技术的高速发展&#xff0c;企业架构对计算、存储、网络资源的需求更高&#xff0c;急需一种新的架构来承载业务&#xff0c;以获得持续&#xff0c;高速&#xff0c;高效的发展&#xff0c;云计算应运而生。 云计算背景 信息大爆炸时代&#xff1a…

Linux 标准IO的fopen和fclose

getchar(),putchar() ‐‐‐‐ 一个字符 gets(buf),puts(buf) ‐‐‐‐ 一串字符 scanf(),printf() ‐‐‐‐ 一个字符&#xff0c;一串字符都可以 fopen函数的形式 FILE * fopen(constchar *path , cost char *mode) /* * description : 打开一个文件 * param ‐ path…

进阶篇07——InnoDB引擎介绍

概览 逻辑存储结构 架构 当执行增删改查操作时&#xff0c;操作的是缓冲区的数据&#xff0c;如果缓冲区里没有要操作的数据&#xff0c;就会从磁盘中读取数据加载到缓冲区中&#xff1b;缓冲区的数据会以一定的频率通过后台线程刷新到磁盘中永久存储。 内存结构 磁盘结构 后…

数据结构(Java):顺序表集合类ArrayList

1、线性表 线性表&#xff0c;在逻辑结构上是连续的&#xff08;可理解为连续的一条直线&#xff0c;一对一的关系&#xff09;&#xff0c;而在物理结构上不一定连续&#xff0c;通常以数组和链式结构进行存储。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线…

Vue介绍与入门(一篇入门)

Vue.js 是一个流行的 JavaScript 框架&#xff0c;专门用于构建用户界面和单页面应用程序。它简单易学&#xff0c;但功能强大&#xff0c;能够帮助开发者快速构建交互性强的 Web 应用。 本教程旨在帮助那些刚开始学习 Vue.js 的开发者快速入门&#xff0c;并掌握一些基础知识…

【UE5.1 角色练习】12-坐骑——Part2(让角色骑上坐骑)

目录 前言 效果 步骤 一、坐骑的父类 二、将角色附加到坐骑 三、添加坐姿 四、骑上坐骑 五、从坐骑上下来 前言 在上一篇&#xff08;【UE5.1 角色练习】11-坐骑——Part1&#xff08;控制大象移动&#xff09;&#xff09;基础上继续实现角色骑上坐骑的功能。 效果 …

语言的数据结构:树与二叉树(二叉树篇)

语言的数据结构&#xff1a;树与二叉树&#xff08;二叉树篇&#xff09; 前言概念特别的二叉树满二叉树完全二叉树 存储结构顺序存储链式存储 查找方式 前言 上文说到了树&#xff0c;有人认为二叉树是树的每一个分支都有两个子节点。其实这也对。但二叉树在此基础上还做了限…

RS422串口通信协议介绍和基础代码实现

**RS-422串口协议介绍**RS-422是一种工业标准的通信接口&#xff0c;其全称是“平衡电压数字接口电路的电气特性”。它是在RS-232的基础上发展而来&#xff0c;旨在解决RS-232通信距离短和速率低的缺点。以下是对RS-422串口协议的详细介绍&#xff1a;传输速率与距离&#xff1…

MyCAT 2 简单入门

MyCAT 2 基础 什么是 MyCAT 2&#xff1f; MyCAT 2 是一款开源的数据库中间件&#xff0c;它主要用于解决数据库的分库分表、读写分离等问题。MyCAT 2 基于 MyCAT 1 的架构进行优化和重构&#xff0c;具有更高的性能和稳定性&#xff0c;支持多种数据库类型&#xff0c;包括 …