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

【机器学习300问】102、什么是混淆矩阵?

一、混淆矩阵的定义

        混淆矩阵是一种用于评估分类模型性能的评估指标。当模型对数据进行预测并将数据分配到预定义的类别时,混淆矩阵提供了一种直观的方式来总结这些预测与数据实际类别之间的对应关系。具体来说,它是一个表格

二、分类模型性能评估一级指标

分类模型的性能评估指标有三个等级,一级评估指标如下:

  1. 真正例(True Positives, TP):模型预测为正类,实际上也是正类的样本数。
  2. 假正例(False Positives, FP):模型预测为正类,但实际上为负类的样本数。
  3. 真负例(True Negatives, TN):模型预测为负类,实际上也是负类的样本数。
  4. 假负例(False Negatives, FN):模型预测为负类,但实际上为正类的样本数。

混淆矩阵就是根据一级分类指标得到的一张表。 

我自己的理解是三句话:

第一句:分类你可以理解成猜迷,猜的对不对用“T真,F假”来表示。

第二句:你猜的这个东西的时候,你猜测它类别是“P正”还是“N负”。

第三句:你猜的这个东西,它本身的分类用“标签label”表示。

所以按照上面的三句话理解,举几个例子:

情况一:这个东西,本来的“标签”是“正”的,我猜它是“正”,意味着我猜对了,故TP。

情况二:这个东西,本来的“标签”是“负”的,我猜它是“负”,意味着我猜对了,故TN。

情况三:这个东西,本来的“标签”是“正”的,我猜它是“负”,意味着我猜错了,故FN。

情况四:这个东西,本来的“标签”是“负”的,我猜它是“正”,意味着我猜错了,故FP。

二、分类模型性能评估二级指标

        分类模型的二级评估指标在之前的文章中提到过,但没有总结过。因此在本文章简单总结一下:

四个二级指标
二级指标公式意义
准确率(Accuracy)Accuracy=\frac{TP+TN}{TP+TN+FP+FN}分类模型所有判断正确的结果占总观测值的比重
精确率(Precision)Precision=\frac{TP}{TP+TN}在模型预测是Positive的所有结果中,模型预测对的比重

召回率(Recall)

(又叫灵敏度Sensitivity)

Recall=\frac{TP}{TP+FN}在真实值是Positive的所有结果中,模型预测对的比重
特异度(Specificity)Specificity=\frac{TN}{TN+FP}在真实值是Negative的所有结果中,模型预测对的比重

更多更详细的知识点,在往期文章中有提到,下面是跳转链接:

【机器学习300问】25、常见的模型评估指标有哪些?icon-default.png?t=N7T8https://blog.csdn.net/qq_39780701/article/details/136407056 

三、分类模型新能评估三级指标

        分类模型的三级评估指标就是F1分数,在之前的文章中提到过。这里就不赘述了。

【机器学习300问】32、F1分数是什么?icon-default.png?t=N7T8https://blog.csdn.net/qq_39780701/article/details/136607068

四、混淆矩阵举例说明 

        以一个图片多分类问题为例,想要判断一张图片是“猫”、“狗”和“猪”其中的哪一种。

 混淆矩阵中的数值是样本数量,如果我们要计算准确率accuracy,那么可以统计所有表中数字的总和做分母。对角线相加做分子(因为对角线上的元素代表模型预测结果是正确的)。可以算出accuracy=\frac{10+15+20}{10+1+2+3+15+4+5+6+20}=\frac{45}{66}=0.6818

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

相关文章:

  • 基于SpringBoot3和JDK17,集成H2数据库和jpa
  • 《逆水寒》手游周年庆,热度不减反增引发热议
  • Kotlin使用Dagger2但无法生成对应类 Unresolved reference: DaggerMyComponent
  • Vue组件通讯⽗组件中通过 provide 来提供变量,然后在⼦组件中通过 inject 来注⼊变量例子
  • 教你搞一个比较简单的计时和进度条装饰器
  • 跑马灯的两种实现方式
  • OpenAI 的 GPT-4o 是目前最先进的人工智能模型!如何在工作或日常生活中高效利用它?
  • 安卓ANR检测、分析、优化面面谈
  • “手撕”链表的九道OJ习题
  • 解决 Git commit 或 Git merge 跑到 VIM 里面去了
  • 营造科技展厅主题氛围,多媒体应用有哪些新策略?
  • 【UML用户指南】-04-从代码到UML的关键抽象
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • 【Java】面向对象的三大特征:封装、继承、多态
  • 请问Java8进阶水平中,常用的设计模式有哪些?
  • 力扣--最大子数组和
  • C# 中的字符与字符串
  • TPM之VMK密封
  • Fastjson 反序列化漏洞[1.2.24-rce]
  • 【面试宝藏】Go基础面试题其一
  • python如何安装pyqt4
  • 调用上传文件接口出现格式错误
  • leetcode148. 排序链表,归并法,分治的集大成之作
  • 一维时间序列信号的小波模极大值分解与重建(matlab R2018A)
  • 五分钟“手撕”栈
  • MAC也能玩转3A大作 Crossover使用指南 crossover运行战地5
  • docker私有镜像仓库的搭建及认证
  • simCSE句子向量表示(1)-使用transformers API
  • 网络运维的重要性
  • 还不会使用多线程优化代码执行效率?codefun教你在业务场景中使用CompletableFuture进行优化!