推荐算法评价指标(ACC、查全率、查准率、F1-Score、ROC、AUC,P-R)

2023-05-16

文章目录

    • 混淆矩阵
    • 二级指标
    • 三级指标
      • F1-Score
      • ROC(AUC)
      • PR曲线

推荐系统的评价指标很多,今天介绍:准确率(ACC)、查准率(P精确率)、查全率(R召回率)、F1-score、AUC值,ROC曲线、PR曲线

以上的所有指标都是依托于混淆矩阵的,所以下面简单贴一张混淆矩阵的图吐出来

混淆矩阵

在这里插入图片描述

  以上就是混淆矩阵,其中挨个解释一下表中内容。列表示的是真实值,而行表示预测值,所以列和行的Positive和Negative所表示的含义是不一样的,列的Positive和Negative表示的是真实的正样本和负样本;而行的Positive和Negative表示的是预测出来的是正样本还是负样本

那么TP就很好理解了,其表示的就是本身就是正样本,预测的时候也预测为正样本,从英文表示是True Positive上也是可以明白的。

TP:英文True Positive ,表示本身是正样本,预测也是正样本,预测正确
TN:英文True Negative,表示本身是负样本,预测也是负样本,预测正确
FP:英文False Positive,表示本身负样本,但是预测为正样本,预测错误
FN:英文False Negative,表示本身是正样本,但是预测为负样本,预测错误

总结一下:结合图中也可以看出,绿色对角线表示预测正确的样本,红色表示预测错误的样本。

通常模型的好坏就往往就是从模型的预测结果来判断的,但是由于混淆矩阵里面的都是具体的个数,不够直观,所以一般会考虑对齐的量纲进行一些约束,通过一些方式把他约束到0-1之间这样,所以也就在混淆矩阵的基础上衍生出了,二级指标、三级指标

二级指标

指标名数学表示含义
准确率(ACC) A c c u r a c y ( 准确率 ) = T P + T N T P + T N + F P + F N Accuracy(准确率)=\frac {TP+TN} {TP+TN+FP+FN} Accuracy(准确率)=TP+TN+FP+FNTP+TN预测正确的样本占所有样本的比例,其中预测正确的可能有正样本也可能有负样本。
查全率(精确率Precision) P r e c i s i o n ( 查全率 P ) = T P T P + F P Precision(查全率P)=\frac {TP} {TP+FP} Precision(查全率P)=TP+FPTP预测出的正样本中,真正的正样本占了多少比例。
查准率(召回率Rcall) 查准率 ( 召回率 R ) = T P T P + F N 查准率(召回率R)=\frac {TP} {TP+FN} 查准率(召回率R)=TP+FNTP预测出的真正的正样本占据所有真实正样本的比例。
特异度TNR T N R = T N T N + F P TNR=\frac {TN} {TN+FP} TNR=TN+FPTN预测出的负样本中,真正的负样本占了多少比重

通过二级指标的转换,混淆矩阵的指标就成功转到0-1之间了。但是有一个新的问题出现了,这些二级指标某种意义上有些独立,就好比说查全率P和查准率R来说,当要追求一个较高时,另一个就会降低。所以需要出现三级指标,来通过某种方式,让二级指标中的某几个指标尽量整体最优。

三级指标

F1-Score

F 1 − S c o r e = 2 P R P + R F1-Score=\frac {2PR} {P+R} F1Score=P+R2PR
P就是查全率,R就是查准率。F1-Score综合考虑了这两个指标,输出1表示模型表示最好,0则表示最差。

ROC(AUC)

  首先要知道ROC曲线的横纵坐标是什么
在这里插入图片描述
其中坐标说明如下:

TPR(真正样本率) T P R = T P T P + F N TPR=\frac {TP} {TP+FN} TPR=TP+FNTP
FPR(假正样本率) F P R = F P F P + T N FPR=\frac {FP} {FP+TN} FPR=FP+TNFP

如何理解这两个指标的含义呢?先看个图。
在这里插入图片描述

蓝色的区域是负样本所在的区域,而红色的区域是正样本所在的区域。横坐标可以认为是一些概率值
当我们在做样本预测的时候,会得到一个概率值,我们就是通过这个概率值去判定是否是正样本的。

在判定正负样本的前提是我们需要事先设定一个阈值,只有当预测值大于阈值时,才是正样本
在这里插入图片描述

假设黑色的这条竖线就是我们划定的阈值,那么大于黑色的部分才是正样本,而小于黑色的部分才是负样本,所以我箭头标出的两个实际样本分布重叠的那部分因为大于阈值,所以预测时候被判定为正样本,而实际上他是负样本,这就是FPR假正样本率,而右侧不重叠的地方才是真正样本率。

那么当我们设定一个阈值时就得到一对TPR,FPR,设定不同的阈值就会得到不同的FPR,TPR。然后把素有的点(FPR,TPR)绘制出来,就得到了ROC(下图左上角就是ROC曲线)。
在这里插入图片描述

也可以看下图
在这里插入图片描述
  绿色线就是ROC曲线,ROC曲线和横坐标围成的面积就是AUC。
AUC的物理意义可以理解为不管是以什么阈值划分正负样本,模型对真实样本的整体的区分能力,当为0.5时,表示模型没啥作用,当为1时,表示最好。
在这里插入图片描述

PR曲线

献上图
在这里插入图片描述

横坐标为查准率(Recall),
查全率(精确率Precision)

这是从另一个角度去决定模型的能力,

  1. 查全率决定了模型要尽可能的召回真正的正样本
  2. 而查准率则表示召回的样本不要太多.但是要足够准确.
    所以综合来看,PR曲线就是综合考虑了,模型要尽可能的召回所有的正样本,但又不能预判错误得太多.

通俗的说,有的人捞鱼的时候,为了尽可能的捞到自己想要的小于,这时候就把渔网孔调小,自然小于就会被打上来(Recall变大),但是同时不想要的大鱼也会被打上来(Precision变小).所以P-R曲线就是在综合考虑这个问题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推荐算法评价指标(ACC、查全率、查准率、F1-Score、ROC、AUC,P-R) 的相关文章

  • acc--›Android无障碍开发框架

    文章目录 前言框架介绍目标界面找到元素进行操作 系列文章联系作者 前言 针对Android无障碍开发 和使用场景 封装出来一个可以适用于各种场景的快速开发框架 框架介绍 无障碍的本质就是通过代码模拟人工操作 所以流程很明确 可以归纳为 目标
  • stata绘制roc曲线_绘制ROC曲线、找截断值,教你两种软件操作方法!

    我们在前面学习过用SPSS SPSS操作 多项测量指标的ROC曲线分析 和Stata Stata教程 ROC曲线下面积的比较 绘制ROC曲线 但是 最佳临界点 截断值 cut off point 该怎么选取呢 今天我们来讲一下如何用SPSS
  • 【深度学习】计算分类模型的分类指标,计算accuracy_top-1、accuracy_top-5、precision、recall和f1_score

    计算accuracy top 1 accuracy top 5 precision recall和f1 score xff1a xff08 1 xff09 accuracy top 1 np sum np argmax preds axis
  • 推荐系统评价指标:AUC和GAUC

    AUC是推荐系统中最常用的模型评价指标 基础概念要常看常新 xff0c 最近复习了一遍AUC的概念 xff0c 在此做个笔记 本文力求简洁系统地理解AUC的概念和计算方法 xff0c AUC在推荐 广告领域的局限性以及解决这一问题的另一个指
  • 推荐系统评价指标/ROC/AUC(附代码)

    推荐系统评价指标 精确率 xff1a 分类正确的正样本数 分类器判定为正样本数 召回率 xff1a 分类正确的正样本数 真正的正样本数 在排序问题中 xff0c Top N就是模型判定的正样本 xff0c 然后计算前N个位置上的准确率Pre
  • 二分类确定画出roc曲线,以及基于roc曲线获得最佳划分阈值

    问题 在做二分类问题时候 xff0c 有正样本和负样本 构建的算法 xff0c 针对每个样本会输出一个分数值 假设该分数大小为 0 1 区间内的值 有时候单纯地以分数0 5位阈值划分样本为预测为1或者预测为0 xff0c 效果有时候并不好
  • 模型常用评估指标详解- 混淆矩阵/Recall/ROC/AUC/F1/MAPE/RMSE

    简介 模型评估通常作为建模的最后一步 用于评估模型效果 判别该模型是否达到预期 但实际模型评估指标需要在建模的第一步确定 即确定目标函数 凡事都得有个目标 才知道努力的 拟合 方向 否则枉然 连续值或者分类型的预测最常用的说法就是模型精度
  • ElasticSearch 8.0脚本评分查询

    使用脚本来提供返回的文档的自定义评分 script score查询非常有用 例如 评分函数成本比较高且我们仅仅需要计算一组过滤后的文档的评分 请求的样例 下面的script score查询设置每个返回的文档的评分等于my int字段值除以1
  • 在单个 ROC 图上绘制线性判别分析、分类树和朴素贝叶斯曲线

    数据显示在页面的最底部 称为 LDA scores 这是一个分类任务 我在数据集上执行了三种监督机器学习分类技术 提供所有编码以显示这些 ROC 曲线是如何生成的 我很抱歉提出了一个有问题的问题 但近两周来我一直在尝试使用不同的代码组合来解
  • 用于随机森林分类的​​ ROC 曲线

    我在用randomForestR平台中用于分类任务的包 rf object lt randomForest data matrix label factor cutoff c k 1 k 其中 k 的范围为 0 1 到 0 9 pred l
  • 来自插入符号中的训练数据的 ROC 曲线

    使用R包插入符号 如何根据train 函数的交叉验证结果生成ROC曲线 比如说 我执行以下操作 data Sonar ctrl lt trainControl method cv summaryFunction twoClassSummar
  • ROC 函数错误“预测变量必须是数字或有序的。”

    我无法让 ROC 函数正常工作 收到错误 预测器必须是数字或有序的 我浏览了其他帖子 但没有解决我的问题 非常感谢任何帮助 Get data flying dget https www math ntnu no emner TMA4268
  • 错误:“y_true 中的类数不等于 'y_score' 中的列数”

    我有一个不平衡的多类数据集 当我尝试计算 roc auc score 时 我收到此错误 ValueError y true 中的类数不等于 y score 中的列数 这是代码 model svm SVC kernel linear prob
  • 如何用Python绘制ROC曲线

    我正在尝试绘制 ROC 曲线来评估我使用逻辑回归包在 Python 中开发的预测模型的准确性 我计算了真阳性率和假阳性率 但是 我无法弄清楚如何使用正确绘制这些matplotlib并计算AUC值 我怎么能这么做呢 您可以尝试以下两种方法 假
  • 如何使用 matplotlib/python 绘制 ROC 曲线 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想绘制一条 ROC 曲线python with matplotlib并想像这样展示它 假设我们有 0 0 到 1 0 的预测y sc
  • MATLAB - 从分类器生成混淆矩阵

    我有一些测试数据和标签 testZ 0 25 0 29 0 62 0 27 0 82 1 18 0 93 0 54 0 78 0 31 1 11 1 08 1 02 testY 1 1 1 1 1 2 2 2 2 2 2 2 2 然后我对它
  • 使用 pROC 绘制 ROC 曲线失败

    我有一个数据集 其组织方式如下 gt head crypto data time btc price btc change btc change label eth price block size difficulty estimated
  • 使用 Caret 包的测试集的 ROC 曲线

    我正在尝试从测试集上的插入符号中获取最佳模型的 ROC 曲线 我碰到MLeval包似乎很方便 输出非常全面 使用几行代码提供了所有需要的指标和图表 一个很好的例子在这里 https stackoverflow com a 59134729
  • scikit-learn - 具有置信区间的 ROC 曲线

    我可以使用 ROC 曲线scikit learn with fpr tpr thresholds metrics roc curve y true y pred pos label 1 where y true是基于我的黄金标准的值列表 即
  • 使用seaborn绘制简单线图

    我正在尝试使用seaborn python 绘制ROC曲线 对于 matplotlib 我只需使用该函数plot plt plot one minus specificity sensitivity bs where one minus s

随机推荐

  • px4.launch apm.launch放哪儿

    安装了MAVROS之后 xff0c 经常要启动px4 launch 或 apm launch 有时候修改其中内容为默认更方便 但是文件在哪里呢 xff1f span class token function sudo span span c
  • UAV021(六):系统架构优化、SBUS协议、遥控器控制电机转动

    目录 序一 系统架构优化1 1 从全局变量到API函数1 2 函数传值 二 SBUS协议读取及解析2 1 协议格式2 2 协议解析2 3 程序设计2 3 1 头文件一览2 3 2 串口配置与捕获解析Sbus帧2 2 3 数据解析细节2 3
  • 理解与证明“线性无关的特征向量的个数=若当块个数”

    1 1 问题 若当标准形中 xff0c 有一条性质说 xff1a 一个矩阵的线性无关的特征向量个数等于其若当标准形的若当块个数 结论是简洁的 xff0c 证明是有复杂的 1 2 理解与证明 首先说明 xff0c 以下的 n n n 阶方阵
  • 证明:不同特征值对应的特征向量线性无关

    证明 设 1
  • [rosrun] Couldn‘t find executable named *** below ***

    ROS编译成功 xff0c 能够找到包 xff0c 但是找不到节点 xff0c 报错 span class token punctuation span rosrun span class token punctuation span Co
  • Keil使用ST-Link下载程序总是 Internal command error 解决方法

    Keil下载程序 xff0c 死活都是Internal command error xff0c 让人几近崩溃 网上选择 Pre Reset办法 按住复位键这些都没用 此处解决办法 xff1a ST Link与板子不仅需要连接 GND SCK
  • 拉普拉斯变换解微分方程

    使用拉普拉斯变换解一阶 二阶微分方程 一 核心内容 拉氏变换对 时域s域 e a t
  • 采样频率变化时,滤波器的性能会变差吗?

    一 问题来源 飞控需要采集加速度计与陀螺仪数据进行低通滤波 xff0c 一般以1kHz频率采集 xff0c 即采样频率为1kHz 使用二阶巴特沃兹低通滤波器进行滤波 xff0c 截至频率可设置为20Hz 滤波器的输入参数一般是采样频率 截至
  • Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)

    首先 xff0c 想吐槽一下 xff0c 一些教程和英文帮助文档一样 xff0c 逐个介绍界面按钮 xff0c 人都被转晕了也进入不了主题 终于 xff0c 看了UP主自动驾驶废材的 xff1a 从零开始搭建carsim与simulink联
  • 基于xr871机器人故事机设计原理和方法 图灵后台

    原创 xff1a http blog csdn net kylin fire zeng xff0c 欢迎转载分享 xff0c 共同进步 xff0c 但请注明出处啊 xff0c 尊重他人成果
  • GPS速度测量

    GPS使用M8N xff0c 放在地上一两分钟 xff0c 举起来 xff0c 放下 xff0c 举高走一走 xff0c 放下 可见 xff0c GPS可以测量NED系下各周速度 但是 z 轴速度收敛慢 xff0c 不是很准确 也可能GPS
  • GPS经纬度转距离

    function span class token punctuation span pN span class token punctuation span pE span class token punctuation span spa
  • STM32 移植Mavlink,Keil报错

    STM32 移植Mavlink xff0c Keil报一大堆错误 span class token keyword static span span class token keyword void span span class toke
  • Linux之串口接收响应试验

    问题来源 仪表作为从机时 xff0c 需要分析仪表的响应速度 但发现采用linux或windows开发时发现串口响应较慢 在网上没有查到相关的资料 xff0c 于是在手上的linux产品上进行试验 xff08 iMAX6Q xff09 试验
  • 用TCP模拟网页服务器开发记录

    一 所需要撑握的技术 xff1a 1 TCP 下的socket应用 2 多线程动态创建 xff0c 实现多个客户端的同时访问 3 了解html的语法结构和javaScript的开发 4 了解http数据包格式 包括json get post
  • 安装docker

    安装docker 参考网站 xff1a https docs docker com install linux docker ce ubuntu sudo apt get update sudo apt get install apt tr
  • 自动化控制行业常见面试问题分析

    一 系统建模 xff0c 二 经典控制与现代控制 xff0c 三 自动检测 xff0c 四 过程控制 xff0c 五 计算机控制 xff0c 六 微机原理 xff0c 七 电子技术综合 xff0c 八 电机控制 xff0c 九 专业英语名词
  • glibc 下载及编译

    glibc下载站点 http ftp gnu org pub gnu glibc 下载点 http www gnu org software libc bugs html 官网 uclibc下载站点 https downloads ucli
  • 树莓派镜像制作

    前言 本文主要讲诉如何制作一个树莓派的启动镜像 xff08 本人使用的是4b 43 xff09 镜像下载 镜像下载64bit xz文件大小在756M xff0c 解压后镜像3 95个G 上面的镜像下载比较慢 xff0c 可以使用国内的镜像源
  • 推荐算法评价指标(ACC、查全率、查准率、F1-Score、ROC、AUC,P-R)

    文章目录 混淆矩阵二级指标三级指标F1 ScoreROC AUC PR曲线 推荐系统的评价指标很多 xff0c 今天介绍 xff1a 准确率 ACC 查准率 P精确率 查全率 R召回率 F1 score AUC值 xff0c ROC曲线 P