一文详解人工智能分类方面的KPI评价标准:混淆矩阵、TP、FP、FN、TN、P-R曲线图、ROC曲线图

本文主要是介绍一文详解人工智能分类方面的KPI评价标准:混淆矩阵、TP、FP、FN、TN、P-R曲线图、ROC曲线图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

样本概念

混淆矩阵理论知识

概念

TP、FP、FN、TN介绍

概念

TP

FP

FN

TN

备注

关系解释

Key Performance Indicator

Precision

标准介绍

概念介绍

样本概念介绍

公式

实际计算

Recall

标准介绍

概念介绍

样本概念介绍

公式

实际计算

F1 Score

标准介绍

公式

实际计算

Recall

标准介绍

概念介绍

样本概念介绍

公式

实际计算

F1 Score

标准介绍

公式

实际计算

Accuracy介绍

标准介绍

概念介绍

样本概念介绍

实际计算

最终结果

备注

P-R曲线图

ROC曲线图

敏感性

医学角度

深度学习角度

特异性

医学角度

深度学习角度

TPR

FPR

结尾


样本概念

在深度学习过程中我们会用数据集来做训练,如我们做人脸识别时需要不同的人脸特征作为数据集,这些数据集可以也可以叫做样本,样本也分为两种类型,分别是正样本与负样本,正样本就是我们要识别的人脸特征,被我们打标记的数据集,而负样本就是没有被打标记的样本,主要负责给模型提供参考点,增强模型的强壮性。

负样本有一定要求,不能是与正样本毫无联系的数据集,如我们训练人脸,那么首先我们需要考虑人会出现在哪种场景下,一般有人的场景周围都有什么,例如:凳子,电脑,空荡荡的房间,床,水杯,空调,街道等这些可能出现人的地方,或者穿在人身上的衣服,这些都可以算是负样本,供机器学习来学习作为参考点,一旦图片中出现负样本的特征则猜测图片中具有人,然后对图像做深度卷积找到人脸特征,其次是当图像中出现多个特征时忽略接近负样本的特征。

混淆矩阵理论知识

混淆矩阵(Confusion Matrix)又称误差矩阵,在深度学习方面被称为可能性表格,它的作用是对一组分类数据进行指标评价的矩阵,它由N行N列组成,也就是二维数组,每行都是一个分类输入源,每列里记录了分类,它就是一个记录分类结构的矩阵。

概念

如我们有这样一个模型,它是由“狗、兔子、鸡、老虎”这些训练集特征训练而成的一个模型,那么我们需要对这个模型进行批判来确定模型的准确率,来确定它的好坏以及分类结果这样才能对模型进行调整,如下图:

我们可以看到输入源,第一组输入是五十张不同狗的照片,对模型里分类全连接层进行预测时的结果是:30张为狗的照片,7张被识别成了兔子,6张被识别成了鸡,还有7张被识别成了老虎,混淆矩阵主要作用就是记录这个,通过混淆矩阵的记录值我们就能明确看出当前训练情况,可以看出训练还不是特别优越,所以还需要进行训练集调整或算法上的调整,或者将训练次数增多等等,来优化模型。

 在经历N次迭代之后变成了这样:

虽然还是有一点瑕疵,因为老虎这组数据预测上,有一张被预测成了鸡,所以我们可以通过找到那张照片来分析为什么会被识别成鸡,也可以直接调整算法或继续训练直到混淆矩阵变得非常可观。

TP、FP、FN、TN介绍

概念

这里以理论知识里的一组混淆矩阵数据做示例

这是混淆矩阵的输出,我们将上图狗的实际识别成功的数据进行统计分析,得到这样一组数据:

这里解释一下这组数据是什么意思,在解释之前需要了解几个名词:

TP

TP全称True Postive(真阳性)

概念角度

预测结果是真,实际结果也是真

样本角度

表示把正样本预测为正样本;

FP

FP全称False Positive(假阳性)

概念角度

预测结果为真,实际为假

样本角度

表示把负样本预测为正样本

FN

FN全称False Negative(假阴性)

概念角度

预测为假,实际上为真

样本角度

表示把正样本预测为负样本

TN

TN全称True Negative(真阴性)

概念角度

预测结果为假,实际上也为假

样本角度

表示把负样本预测为负样本;

备注

TP、FP、FN、TN都是分类统计的指标,用来计算准确率的因子值

关系解释

上图的数据与TP、FP、FN、TN是对应关系

这里解释一下这些数据是怎么统计来的,刚开始说的计算狗的精确度,我们的混淆矩阵数据输出如下:

 TP即预测结果为真实际结果也为真,那么可以看到狗的分类里是30,所以它也就是30

 FP预测结果为真实际上为假,我们可以看到兔子这组训练集里22张被预测为了狗,鸡31,老虎12,所以加起来是:65,因为这些数据集虽然被预测为真,但实际上它们并不是狗

 

FN预测为假实际上为真,我们从第一列数据就可以得出我们输入了50张狗的照片,只有30张被识别成了狗,其它的20张被识别其它的,所以预测结果是假的,但是实际上这几种照片是狗

 TN就是预测结果为假,实际上也是假,我们直接把其它训练集预测不是狗的总数加起来就可以了,因为这些数据没有被识别成狗,它们被识别成了其它的,也的的确确是假的

 一般我们经过上面的分析计算后可以得到这样的一组格式数据:

将我们的真实数据填写上去就变成了这样:

PP(预测结果为正样本的数量合集),PN(预测结果为负样本的结果合集)

166

95

71

703020
1166551

Key Performance Indicator

Key Performance Indicator简称KPI即关键绩效指标

下面是在深度学习方面的KPI的几个指标

有了上面的数据因子,我们就可以拿这些因子来评价我们的模型,如我们评价预测狗的指标

Precision

标准介绍

精准率,查准率

概念介绍

预测的数据集中有多少张样本图片是狗

样本概念介绍

预测为正的样本中有多少是真正的正样本

公式

预测为真阳性/所有预测结果都为真阳性的样本,包括即便结果是错的 Precision=TPTP+FP

实际计算

我们用刚刚统计预测狗的混淆矩阵数据:

Precision=30/30+65

Precision=0.31578947

在做一个百分比计算

0.31578947*100=31%

所以预测狗的精准率达到31%

Recall

标准介绍

召回率,查全率

概念介绍

预测数据集中有多少样本图片被正确预测成狗了,这个样本指的是单一狗的样本,不包括非狗的样本

样本概念介绍

即表示样本中有多少正样本被正确预测了

公式

(预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN) Recall=TPTP+FN

实际计算

Recall=30/30+20

Recall=0.6

百分比:0.6*100=60%

召回率=60%

F1 Score

标准介绍

精准率和召回率的调和平均数,主要应用于加权重方面,类似平均误差函数

公式

Precision=\frac{TP}{TP+FP}

实际计算

我们用刚刚统计预测狗的混淆矩阵数据:

 Precision=30/30+65

Precision=0.31578947

在做一个百分比计算

0.31578947*100=31%

所以预测狗的精准率达到31%

Recall

标准介绍

召回率,查全率

概念介绍

预测数据集中有多少样本图片被正确预测成狗了,这个样本指的是单一狗的样本,不包括非狗的样本

样本概念介绍

即表示样本中有多少正样本被正确预测了

公式

(预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)

Recall=\frac{TP}{TP+FN}

实际计算

Recall=30/30+20

Recall=0.6

百分比:0.6*100=60%

召回率=60%

F1 Score

标准介绍

精准率和召回率的调和平均数,主要应用于加权重方面,类似平均误差函数

公式

F1s=\frac{2 x Precision x Recall}{Precision + Recall}

实际计算

用我们上面的数据:

Precision=0.31

Recall=0.6

F1s=2*0.31*0.6/0.31+0.6=1.8

调和平均数不能做百分比运算,它的主要作用是用于加权,类似误差函数,用于补偿

Accuracy介绍

标准介绍

精确率,准确率

概念介绍

所有样本中,被正确预测的样本数量,这个样本里包括狗和其它的样本,所有样本的数量里被成功识别为狗的数量

样本概念介绍

被正确预测的样本占所有预测样本的比例

Accuracy=\frac{TP + TN}{TP + TN + FP + FN}

实际计算

Accuracy = 30+51/30+51+65+20

Accuracy = 0.48795181

百分比:0.48795181*100=48%

精确率为48%

最终结果

经过上面的计算统计,我们预测狗的最终数据如下:

PrecisionRecallF1 ScoreAccuracy
31%60%1.848%

备注

从识别狗时我们会出现其它图片,非狗的图片,这些在这次训练集中可以算是负样本,只有狗的图片才是正样本

P-R曲线图

在上述指标中我们会期望两个标准越高越好:Precision(精准率:样本中有多少是正样本),Recall(召回率:正样本中有多少被正确识别了),这两个标准可以衡量出正样本的正确率,如果它非常高则代表你的正样本都被识别了。

这里说一下为什么不用Accuracy,因为Accuray是代表着所有样本中被正确识别的样本,它的值是属于总和样本的,包括负样本也参与运算了数值比较广泛,而Precision和Recall会相结合会更加精确,这个方法也叫置信度,就是判断输入样本被识别为正样本的概率是多少。

所以这两个指标被称为P-R标准,一般用于绘制曲线图,也称为P-R曲线图,

我们可以使用Python的Matplotlib库来画曲线图

绘图也非常简单,在P-R曲线图中,Precision代表Y,Recall代表X,就拿本篇的数据来说,测试数据集狗的P和R分别是:0.31和0.6,分别对应Y:0.32,X:0.6

代码如下:

import numpy as np
import matplotlib.pyplot as pltx=[0,0.6]
y=[0,0.31]
plt.figure()
plt.plot(x,y)
plt.savefig("test.jpg")

运行之后本地就会生成一个test.jpg的图像文件,打开之后显示如下:

曲线非常平滑,这个原因是因为我们的样本数据非常少,就一个,所以非常平滑,通常情况下越平滑意味着模型置信度越好,准确率越高。

我们尝试增加更多的数据集:

import numpy as np
import matplotlib.pyplot as pltx=[0,0.6,0.67,0.69,0.71,0.77,0.81]
y=[0,0.31,0.47,0.51,0.58,0.66,0.94]
plt.figure()
plt.plot(x,y)
plt.savefig("test.jpg")

 运行输出如下:

 在输入数据时记得从大到小排序,因为曲线图其实是趋势图,如果你的数据不是从小到大排序的看起来就会非常的乱,逐步增长代表我们的预测结果逐步变好,代表我们的模型置信度越来越高,理论上来说P与R都应增长为(0,1),平滑增长没有折线的,因为这样的模型置信度是最高的。

ROC曲线图

ROC曲线全称Receiver Operating Characteristic Curve(接受者操作特性曲线),又称感受性曲线(sensitivity curve),在解释ROC曲线之前需要先了解两个概念:TPR(True Positive Rate 真阳性率)、FPR(False Positive Rate 真、假阳性率),它们俩是构建ROC的主要变量,ROC曲线图主要思路是利用构图的方式来表示敏感性和特异性,ROC最早起源于医学上,用于表示医学诊断结果,其中敏感性和特异性是统计学上的名词,它俩的代表的含义分别如下:

敏感性

敏感性也称敏感度

医学角度

敏感性即肿瘤化验组中化验结果阳性比例,敏感性越接近100%就越表明该肿瘤能被检测出真阳性的肿瘤患者。

深度学习角度

预测样本中,为正样本的比例,比率越接近100%代表能正确预测的概率越大

特异性

特异性也称特异度,它与敏感度相反

医学角度

特异性即肿瘤化验组中化验结果阴性比例,特意性越接近100%就越表明该肿瘤能被检测出假阳性的患者。

深度学习角度

预测样本中,为负样本的比例,比率越接近100%代表样本被错误预测的概率越大

在深度学习上敏捷性与特异性对应是TPR与FPR,它俩的概念如下:

TPR

TPR全称True Positive Rate即真阳性率,即表示预测样本中所有被认为是正样本的数据,即预测是正样本实际也是正样本(TP)和预测为负样本实际上是正样本(FN)的数量,在曲线中它代表Y轴

它的算法公式如下:

TPR=\frac{TP}{TP + FN}

FPR

FPR全称Flase Positive Rate假阳性率,即预测结果为正样本实际上为负样本(FP)和预测结果为负样本实际上也是负样本(TN)的集合,在曲线中它代表X轴

它的算法公式如下:
TPR=\frac{FP}{FP + TN}

总的来说ROC曲线图就是统计一组数据的正负比率然后用曲线的方式显示出来,用于表示预测正负的概率。

我们使用Python进行绘制:

import numpy as np
import matplotlib.pyplot as pltx=[0,0.15,0.17,0.24,0.37,0.47,0.50]
y=[0,0.70,0.77,0.79,0.81,0.85,0.90]
plt.figure()
plt.plot(x,y)
plt.savefig("test.jpg")

运行结果:

结尾

可以把本文中的正样本与负样本理解为真或假,0/1

一般情况下我们训练好模型之后都会使用上述KPI进行评价之后可以得到如下一个表格与曲线图:

PPV=精确度

ACC=精准度

TPR=真阳率

FPR=假阳率

有了上图这组数据后我们进行P-R曲线图绘与ROC曲线图用来表示置信度与预测概率,它们俩的曲线应相似,因为它们所表示的结果都偏向于预测正确的角度。

P-R曲线

ROC曲线

 

这篇关于一文详解人工智能分类方面的KPI评价标准:混淆矩阵、TP、FP、FN、TN、P-R曲线图、ROC曲线图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200305

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc