【推荐系统】常用评价指标NDCG、HR、Recall、MRR解析

news2024/11/15 11:21:03

【推荐系统】常用评价指标NDCG、HR、Recall、MRR解析

文章目录

  • 【推荐系统】常用评价指标NDCG、HR、Recall、MRR解析
    • 1. 准备工作
    • 2. 计算这些指标 (@5)
      • 2.1 Accuracy(准确率)
      • 2.2 Recall(召回率、查全率)
      • 2.3 Precision(精确率、查准率)
      • 2.4 F1 score(精确率与召回率的调和均值)
      • 2.5 HR (命中率(Hits Ratio))
      • 2.6 MRR (平均倒数排名(Mean Reciprocal Rank))
      • 2.7 NDCG(归一化折损累计增益(Normalized Discounted Cumulative Gain))
        • 2.7.1 CG (累计增益 Cumulative Gain)
        • 2.7.2 DCG(折损累计增益 Discounted cumulative gain)
        • 2.7.3 NDCG (归一化折损累计增益 Normalized Discounted Cumulative Gain)
        • 2.7.4 当针对用户接下来要访问的单个物品时,NDCG定义如下
      • 2.8 MAP(平均精度均值(Mean Average Precision))
    • 参考

1. 准备工作

本文将探讨 Accuracy、Recall、Precision、HR、F1 score、MAP、MRR、NDCG 等指标。

  • 混淆矩阵需要用到。
    在这里插入图片描述

    • 简单记忆:
      • 阳性(Positive)代表了预测为真,阴性(Negative)代表了预测为假;
      • True代表真实值与预测值匹配,False代表真实值与预测值不匹配。
  • 这里以@5为例,计算这些指标。

  • 给出预测的、真实的用户将要交互的物品,下面进行计算。

    • 真实的:[A, B, C, D, E]
    • 预测的:[A, C, B, E, F]

2. 计算这些指标 (@5)

——————————————————————————————————
这里假设总样本为6个(A, B, C, D, E, F),则

  • TP = 4(ABCE)
  • TN = 0
  • FP = 1(F)
  • FN = 1(D)

2.1 Accuracy(准确率)

  • 含义
    • 预测正确的样本在所有样本中的比例。
    • 在样本不平衡的情况下,不能作为很好的指标来衡量结果。
  • 公式
    在这里插入图片描述
  • 计算:
    • ACC = (4 + 0) / 6 = 0.67

2.2 Recall(召回率、查全率)

  • 含义:
    • 预测正确的正样本在所有正样本中所占的比例,即表示有多少比例的用户-物品交互记录包含在最终的预测列表中。
    • 关注于用户感兴趣的物品(TP + FN 其实就是用户感兴趣的物品)
  • 公式
    在这里插入图片描述
  • 计算
    • Recall = 4 / (4 + 1) = 0.8

2.3 Precision(精确率、查准率)

  • 含义
    • 在全部预测为正的结果中,被预测正确的正样本所占的比例。
    • 关注于要推荐的物品(TP + FP 其实就是要推荐的物品)
  • 公式
    在这里插入图片描述
  • 计算
    • Precision = 4 / (4 + 1) = 0.8

2.4 F1 score(精确率与召回率的调和均值)

召回率和精确率是一对矛盾的指标,当召回率高的时候,精确率一般很低;精确率高时,召回率一般很低。

  • 因此便有了:精确率与召回率的调和均值 F1 score。

  • 公式
    在这里插入图片描述

  • 计算

    • F1 = 2 (0.8 * 0.8) / (0.8 + 0.8) = 0.8

2.5 HR (命中率(Hits Ratio))

  • 含义
    • 预测结果列表中预测正确的样本占所有样本的比例,即用户想要的项目有没有推荐到,强调预测的“准确性”。
    • 其实是针对于用户下一阶段只交互一个物品
  • 公式
    在这里插入图片描述
    • N,表示用户总数量。
    • hits(i),表示第 i 个用户要访问的物品是否在推荐列表中,是则为1,否则为0。
  • 计算
    • HR = 4 / 5 = 0.8 (要访问的有5个,成功预测了4个,因此为0.8)
    • 针对 A 的话,HR = 1
    • 针对 D 的话,HR = 0

2.6 MRR (平均倒数排名(Mean Reciprocal Rank))

  • 含义
    • 平均结果中的排序倒数,表示待推荐的项目是否放在了用户更显眼的位置,强调“顺序性”。
    • 也是针对于用户下一时刻只交互一个物品。(这里以)
  • 公式
    在这里插入图片描述
    • N,表示用户的总数。
    • pi,表示第 i 个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi->∞。
  • 计算
    • 针对 A 的话,MRR = 1 / 1 = 1.0
    • 针对 B 的话,MRR = 1 / 3 = 0.33

2.7 NDCG(归一化折损累计增益(Normalized Discounted Cumulative Gain))

推荐系统通常为某用户返回一个 item 列表,假设列表长度为 K,这时可以用 NDCG@K 评价该排序列表与用户真实交互列表的差距。

2.7.1 CG (累计增益 Cumulative Gain)

考虑一个长度为K的列表, r e l i rel_i reli 代表 i 位置物品的相关度。(在推荐系统里就是0、1)
在这里插入图片描述

  • 这个评价指标有一个问题,推荐的物品聚集在列表的尾部和头部得分一样,这不合适。

2.7.2 DCG(折损累计增益 Discounted cumulative gain)

DCG提出:如果有效结果在列表中排的较低的话,应该对列表的评分惩罚,惩罚和有效结果的排位有关。所以就加了衰减因子:
在这里插入图片描述
在这里插入图片描述

  • 后一个公式广泛在工业界用。当得分是 0 / 1,即 r e l i ∈ { 0 , 1 } r e l_{i} \in\{0,1\} reli{0,1} 时,二者是等价的。

2.7.3 NDCG (归一化折损累计增益 Normalized Discounted Cumulative Gain)

DCG没有考虑到推荐列表和每个检索中真正有效结果(test items list)的个数,所以最后引入NDCG,就是标准化后的DCG。
在这里插入图片描述

  • 其中 IDCG 是指 ideal DCG,即完美结果下的DCG。

在这里插入图片描述

2.7.4 当针对用户接下来要访问的单个物品时,NDCG定义如下

  • 含义
    • 表示归一化加入位置信息度量计算的前 p 个位置累计得到的效益。
  • 公式
    在这里插入图片描述
    • N,表示用户的总数。
    • pi,表示第 i 个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi->∞。

2.8 MAP(平均精度均值(Mean Average Precision))

  • Average Precision(AP):平均精确率,在召回率从0到1逐步提高的同时也要保证准确率比较高,AP值尽可能的大。
  • 含义
    • 用多个来衡量性能,多个类别AP的平均值。
  • 公式
    在这里插入图片描述

参考

【1】https://blog.csdn.net/qq_51392112/article/details/129169738
【2】https://blog.csdn.net/qq_41750911/article/details/124082415

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

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

相关文章

【跟着陈七一起学C语言】今天总结:C语言的数组和指针

友情链接:专栏地址 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错误&#x…

HR怎么看待PMP证书呢?

我们可以先了解一下各个公司对于PMP证书的一个观点 针对PMP证书,在HR看来,有这几个直观的感受和判断: 公司要求PMP优先,那我盯着这个看就行,没有就不要,省事儿招的多了也有一些基本了解,考到这…

【Linux】Linux环境下安装RocketMQ(图文解说详细版)

文章目录 一、简介二、MQ 下载三、JAVA 环境配置四、MQ 安装五、启动 MQ六、测试七、运行八、关闭 MQ 一、简介 消息队列中间件是分布式系统中的重要组件,主要解决应用耦合、流量削峰等问题,目前主流的 MQ 主要是:RocketMQ、kafka、RabbitMQ…

GRPC - JAVA笔记

GRPC - JAVA笔记 gRPC简介 由google开源的一个高性能的RPc框架,由google内部的Stubby框架演化而来。2015年正式开源。云原生时代的RPC标准,由Go语言开发 gRPC的核心设计思路 网络通信 ------> gRPC 自己封装了网络通信的部分,提供了多种…

zookeeper超详细安装集群部署

文章目录 一、zookeeper官网下载二、JDK环境安装三、zookeeper安装1.zookeeper解压2.zookeeper配置文件介绍 克隆服务器1.网络检查2.集群配置3.启动集群4.错误记录 一、zookeeper官网下载 下载地址:https://archive.apache.org/dist/zookeeper/找到对应的版本下载 …

文章纠错免费软件-文字校对软件免费下载

自动校对稿件的软件 自动校对稿件的软件是一种基于自然语言处理(Natural Language Processing, NLP)和机器学习(Machine Learning)技术的工具,可以较为准确地检测和纠正文本中出现的语法、拼写、标点符号以及其他笔误…

如何优雅的白嫖ChatGPT

ChatGPT已经火了大半年了,但对于很多小伙伴来说想使用它还是有些麻烦,不仅需要稳定的漂亮国ip,还要冒着被封号的风险。 因此,本文介绍了两个白嫖ChatGPT的方式供大家使用(亲测可用): Poe 地址(科学上网)…

入行IC|数字IC与模拟IC方向怎么选?(内附2023春招薪资对比)

很多同学想要入行IC,但不知道数字和模拟方向怎么选? 如果没有亲身体会过模拟设计,并有发自内心的自信或者兴趣,一般不看好纯小白去学模拟电路设计。 模拟设计想做好,没有数学功底,没有电路分析的功底&…

C++Primer第20章 iostream库

第20章 iostream库 C中的IO流是通过多继承和虚拟继承实现的,下面是它的关系. 我们要学习的就是三个库,这里我会把重点的拿出来 iostream: 终端操作fstream:文件操作sstream:格式化操作 20.1 输出操作符<< 输出操作符可以接受任何内置数据类型的实参,包含我们的const …

HTTP第六讲——键入网址再按下回车,后面究竟发生了什么?

使用 IP 地址访问 Web 服务器 首先我们运行 www 目录下的“start”批处理程序&#xff0c;启动本机的 OpenResty 服务器&#xff0c;启动后可以用“list”批处理确认服务是否正常运行。 然后我们打开 Wireshark&#xff0c;选择“HTTP TCP port(80)”过滤器&#xff0c;再鼠标…

接口自动化测试神器:Python+Requests+Unittest让你的测试用例飞起来

B站首推&#xff01;2023最详细自动化测试合集&#xff0c;小白皆可掌握&#xff0c;让测试变得简单、快捷、可靠 随着互联网的发展&#xff0c;越来越多的应用程序采用了分布式架构&#xff0c;并通过API接口进行数据交换。因此&#xff0c;接口自动化测试已经成为了保证软件质…

git简介和使用、基础命令

文章目录 一、git的安装与配置二、Git工作区原理三、Git的使用和仓库的创建四、Git的常用操作五、配置公钥六、IDEA中配置Git 一、git的安装与配置 https://tortoisegit.org/ 下载对应版本安装即可 注意&#xff1a;配置中输入邮箱和密码一定要和自己的git账户一致 git的配置…

Seqkit-2.2.0 移植指南(openEuler 20.03 LTS SP3)

1.软件介绍 seqkit是一种跨平台的、极快的&#xff0c;全面的fasta/q处理工具。seqkit为所有的主流操作系统提供了一种可执行的双元文件&#xff0c;包括Windows&#xff0c;Linux&#xff0c;MacOS X&#xff0c;并且不依赖于任何的配置或预先配置就可以直接使用。 关于seqk…

C++类与对象—中

我们本期继续来学习C的类与对象&#xff0c;没有看过往期的同学建议先看看之前的 (11条消息) C类与对象—上_KLZUQ的博客-CSDN博客 目录 类的6个默认成员函数 构造函数 析构函数 拷贝构造函数 运算符重载 赋值运算符重载 日期类的实现 const成员 取地址及const取地址操作…

RabbitMQ启动失败的一系列尝试

一. 背景 在三台 CentOS 7.x上部署了RabbitMQ集群&#xff0c;如下&#xff1a; 服务器IPhostname节点说明端口管控台地址192.168.31.101masterrabbitmq master5672http://192.168.11.71:15672192.168.31.102slave1rabbitmq slave5672http://192.168.11.72:15672192.168.31.10…

centos7 安装 oceanbase 单机版测试

1&#xff1a; 说明 虚拟机&#xff1a;4核8G&#xff0c; 60G硬盘要求。 用的是社区版 官网地址&#xff1a; https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001692850 下载地址&#xff1a; https://www.oceanbase.com/softwarecenter 2&#…

基于Linux系统在线安装RabbitMQ

一、前言 二、Erlang下载安装 三、RabbitMQ下载安装 三、RabbitMQ Web界面管理 一、前言 本次安装使用的操作系统是Linux centOS7。 二、Erlang下载安装 在确定了RabbitMQ版本号后&#xff0c;先下载安装Erlang环境。下面演示操作过程&#xff1a; Erlang下载链接&#…

JDBC基础

1、JDBC概述 在开发中使用的是java语言&#xff0c;那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。 1.1 JDBC概念 JDBC 就是使用Java语言操作关系型数据库的一套API 全称&#xff1a;( Java DataBase Connectivity ) Java 数据库连接 我们开发的同一…

【Linux】7. 环境变量

1. 环境变量的引入 先描述一个现象&#xff0c;我们在执行二进制可执行程序的时候&#xff0c;是需要找到其所在位置的(程序要运行必须先加载到内存&#xff0c;是因为冯诺依曼体系结构规定CPU只能从内存中读取数据)&#xff0c;所以这也就是为什么我们在运行前带上./的原因&a…

java http get post 和 发送json数据请求

浏览器请求效果 HttpUtils 工具类 package com.bysen.common.utils.http;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ConnectException; impo…