自我理解:精度(precision)和召回(recall)

news/2024/11/18 8:33:12/

1、精度(precision)

  • 精度是用于评估分类模型的一个重要指标。它反映了模型预测为正例的样本中,实际真正为正例样本的比例。
    • 【注】正例样本指在二分类问题中,被标注为正类的样本。
      • 例如:在垃圾邮件分类任务中,正例样本就是真实的垃圾邮件。
  • 精度的计算公式
    • 精度 = 正确预测为正例的样本数 / 总预测为正例的样本数
    • 例如,在二分类问题中,如果有100个样本被模型预测为正例,其中80个样本实际真为正例,20个样本被误判。
    • 那么这个模型的精度为:80 / 100 = 80%。
    • 也就是说,这个模型预测为正例的样本中,有80%实际是正例,20%是误报的负例。
  • 精度反映了模型的预测结果中,正类样本所占的比例。它代表了模型的预测准确性和精确度。精度指标越高,说明模型的预测效果越好。
  • 通俗解释
    • 假设班上有50个学生,其中10个学生的数学成绩很好。现在老师让所有学生做一份数学测试,结果通过测试的数学好的学生有8个,通过测试的其他学生有5个。
    • 那么此时,精度 = 测试通过的数学好学生数量 / 总共测试通过的学生数量 = 8 / (8 + 5) = 8 / 13 = 61.5%
    • 精度反映了在全部测试通过的学生中,数学好的学生的比例。

2、召回(recall)

  • 召回是用于评估分类模型效果的一个重要指标。它衡量模型正确识别出正样本的比例。
  • 召回率(recall)也称为真阳性率(True Positive Rate)或敏感度(Sensitivity)。
  • 召回的计算公式
    • 召回率 = 模型预测出的正例样本数 / 所有的正例样本总数
    • 例如,假设有100个正例样本,模型只预测出了其中的80个为正例。
    • 那么这个模型的召回率为:80 / 100 = 80%
  • 召回率反映了分类模型中,所有的正例样本中有多大比例被正确识别出来。它反应了模型检测正例的全面能力。
  • 通俗解释
    • 假设班上有50个学生,其中10个学生的数学成绩很好。现在老师让所有学生做一份数学测试,结果有8个数学成绩好的学生通过了测试。
    • 那么此时,召回率 = 测试通过的数学好学生数量 / 全部数学好学生数量 = 8 / 10 = 80%
    • 召回率反映了在全部的“数学好学生”中,有多大比例通过了测试。

3、精度与召回的区别

  • 精度计算所有被预测为正例样本中,实际为正例样本的比例,反映了模型的精确度;召回计算所有实际为正例样本中,被正确预测为正例的比例,反映了模型的召回能力。
  • 精度倾向于惩罚假正例,召回倾向于惩罚漏报的正例。
  • 提高精度的方法是减少假正例,提高召回的方法是减少漏报正例。
  • 精度和召回往往存在权衡,精度提高时召回降低,反之亦然。评估模型效果时,需要同时考量精度和召回。
  • 在样本不平衡时,由于负例较多,仅考虑精度往往会忽视正例准确率,这时更关注召回。

http://www.ppmy.cn/news/1049920.html

相关文章

激活函数总结(十五):振荡系列激活函数补充(SQU、NCU、DSU、SSU)

激活函数总结(十五):激活函数补充 1 引言2 激活函数2.1 Shifted Quadratic Unit (SQU) 激活函数2.2 Non-Monotonic Cubic Unit (NCU) 激活函数2.3 Decaying Sine Unit (DSU) 激活函数2.4 Shifted Sinc Unit (SSU) 激活函数 3. 总结 1 引言 在…

代码随想录day55

392判断子序列 class Solution { public:bool isSubsequence(string s, string t) {vector<vector<int>>dp(s.size()1,vector<int>(t.size()1,0));int res0;for (int i 1; i < s.size(); i) {for(int j1;j<t.size();j){if(s[i-1]t[j-1]) dp[i][j]dp[…

【已解决】记 Vue3+SpringBoot 前后端分离项目部署时的一次跨域问题

问题背景是在一次部署开发环境时&#xff0c;由于是前后端分离项目&#xff08;前端Vue3&#xff0c;后端SpringBoot&#xff09;&#xff0c;SpringBoot 使用 Docker 部署&#xff0c;前端访问服务接口时出现跨域问题。 不知道什么是跨域问题的小伙伴可以查看另一篇文章&…

微信聊天记录词云制作

文章目录 一&#xff1a;聊天记录传输至电脑二&#xff1a;聊天记录破解三&#xff1a;聊天记录分析&#xff08;1&#xff09;字段含义&#xff08;2&#xff09;词频统计和词云制作&#xff08;3&#xff09;效果展示 一&#xff1a;聊天记录传输至电脑 在雷电模拟器中打开r…

吐血整理,接口自动化测试-接口依赖/上传接口处理(项目实例)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 常见的两种接口依…

PHP在线客服系统推荐

在当今数字化时代&#xff0c;企业客户服务的重要性不容忽视。为了提供卓越的客户体验&#xff0c;许多企业正在寻找PHP在线客服系统。这种系统不仅可以满足客户的需求&#xff0c;还能提升企业的形象。本文将深入探讨PHP在线客服系统的一些有趣话题。 理解PHP在线客服系统 PHP…

mysql的存储过程语句添加事务管理没有生效

如下写法存储过程的事务是没有生效的&#xff0c;因为START TRANSACTION;不可以写在DDL语句之前 CREATE DEFINERrootlocalhost PROCEDURE myProcedure() BEGIN START TRANSACTION; CREATE TABLE IF NOT EXISTS aa(a int(255) NOT NULL AUTO_INCREMENT,b varchar(255) DEFAULT …

Leetcode 二叉树 669

二叉树&#xff1a; 669. Trim a Binary Search Tree class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if(root NULL) return NULL;if(root->val < low) return trimBST(root->right, low, high);if(root->val > high) ret…