当前位置: 首页 > news >正文

机器学习中核心评估指标(准确率、精确率、召回率、F1分数)

混淆矩阵

混淆矩阵是一个表格,用于总结分类模型在测试集上的预测结果,特别是当真实标签已知时。它将预测结果分为四种情况(记忆:实际和预测一致为True,预测为正是Positive):

  • 真正例: 实际为正类,预测也为正类 (True Positive, TP)

  • 假正例: 实际为负类,但预测为正类 (False Positive, FP

  • 假反例: 实际为正类,但预测为负类 (False Negative, FN

  • 真反例: 实际为负类,预测也为负类 (True Negative, TN)

真实标签 \ 预测标签正类 (Positive)负类 (Negative)
正类 (Positive)TPFN
负类 (Negative)FPTN

 准确率(Accuracy)

  • 定义: 模型预测正确(TP+TN)的样本数占总样本数(TP+FP+FN+TN)的比例。最直观的指标。

  • 计算公式:
    Accuracy = (TP + TN) / (TP + FP + FN + TN)

  • 意义:

    • 衡量模型整体预测正确的比例。

    • 优点: 简单易懂。

    • 缺点: 在数据不平衡时容易产生误导。例如,在疾病检测中,健康人(负类)占99%,病人(正类)占1%。一个将所有样本都预测为健康的模型,准确率也能达到99%,但这个模型对于检测病人是完全无效的。此时需要更细致的指标。

  • 适用场景: 当正负类样本比例大致相同时,准确率是一个合理的指标。

精确率(Precision)

  • 定义: 在模型预测为正类(TP+FP)的样本中,实际也是正类(TP)的样本所占的比例。衡量预测的“精准度”或“可靠性”。

  • 计算公式:
    Precision = TP / (TP + FP)

  • 意义:

    • 关注的是预测结果的质量。高精确率意味着模型预测为正类的样本中,误报(FP)的比例低。

    • 核心问题: 当模型说某个样本是正类时,这个判断有多可信?

  • 适用场景: 当需要尽量减少“假警报”或“误报”时非常重要。

    • 垃圾邮件检测: 将正常邮件误判为垃圾邮件(FP)很糟糕。需要高精确率,确保标记为垃圾邮件的邮件确实是垃圾邮件。

    • 推荐系统: 向用户推荐的商品,希望推荐列表中的商品用户确实感兴趣(高TP),避免推荐不相关的商品(低FP)。

 召回率(Recall)

  • 定义: 在实际为正类(TP+FN)的样本中,被模型正确预测为正类(TP)的样本所占的比例。衡量模型的“查全率”或“覆盖度”。

  • 计算公式:
    Recall = TP / (TP + FN)

  • 意义:

    • 关注的是模型找出所有正类样本的能力。高召回率意味着模型漏报(FN)的比例低。

    • 核心问题: 在所有实际的正类样本中,模型成功找出了多少?

  • 适用场景: 当需要尽量减少“漏检”或“错过”正类样本时非常重要。

    • 疾病诊断: 漏掉一个真正的病人(FN)后果可能很严重。需要高召回率,尽可能找出所有患病者。

    • 欺诈检测: 漏掉一个欺诈交易(FN)会导致损失。需要高召回率,尽可能识别出所有欺诈行为。

    • 信息检索: 希望搜索引擎返回的结果尽可能包含所有相关的文档(高TP),避免遗漏(FN)。

F1 分数(F1 Score)

  • 定义: 精确率召回率调和平均数(倒数平均数:总体各统计变量倒数算术平均数倒数。旨在用一个分数综合反映模型的精确率和召回率。1/((1/Precision+1/Recall)/2).

  • 计算公式:
    F1 Score = 2 * (Precision * Recall) / (Precision + Recall)

    • 调和平均数的特点:更重视较小值。只有当精确率和召回率都高时,F1分数才会高。

  • 意义:

    • 提供一个在精确率和召回率之间取得平衡的单一指标。

    • 特别适用于数据不平衡的情况,或者当同时关注精确率和召回率且需要找到一个折中点时。

    • 比简单的算术平均更能反映模型的整体性能(当精确率和召回率差异较大时)。

  • 适用场景:

    • 当需要同时考虑精确率和召回率,且没有明确偏向哪一个更重要时。

    • 评估在不平衡数据集上模型的综合性能。

    • 比较不同模型时的一个常用综合指标。

http://www.lryc.cn/news/595136.html

相关文章:

  • 动态数据源切换
  • Android Jetpack系列组件之:LiveData(保姆级教程)
  • 动静态库原理与实战详解
  • Ubuntu 22 安装 ZooKeeper 3.9.3 记录
  • 【HarmonyOS】ArkUI - 声明式开发范式
  • 信息整合注意力IIA,通过双方向的轻量级注意力机制强化目标关键特征并抑制噪声,提升特征融合的有效性和空间位置信息的保留能力。
  • I2S音频的时钟
  • C/C++ 详谈结构体大小计算(内存对齐)
  • 移动端轻量级神经网络推理框架
  • 蚂蚁数科AI数据产业基地正式投产,携手苏州推进AI产业落地
  • 解决mac chrome无法打开本地网络中的内网网址的问题
  • ELN和LIMS的区别
  • Django关于ListView通用视图的理解(Cursor解释)
  • Java基础教程(010):面向对象中的this和就近原则
  • 算法训练营DAY37 第九章 动态规划 part05
  • 两个相机的视野 拼接算法
  • 【C++】stack和queue拓展学习
  • DevCon 6记录
  • 从 “能用“ 到 “好用“:中小制造企业数字化转型中的 IT 系统优化管理策略
  • 扬声器测试解决方案
  • AWS Certified Cloud Practitioner 认证考试总结
  • Centos安装最新docker以及ubuntu安装docker
  • 旋转目标检测(Rotated Object Detection)技术概述
  • ESP32-S3学习笔记<1>:ESP-IDF的安装与命令
  • 【编程语言】C、C++、C#深度对比:三种语言的演进历程与应用场景
  • Windows VS2019 编译 Apache Thrift 0.15.0
  • 倒排索引实操
  • CS231n-2017 Lecture4神经网络笔记
  • selenium爬取图书信息
  • 通信刚需小能手,devicenet转PROFINET网关兼容物流分拣自动化