版权声明:本文为CSDN博主「ZONG_XP」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zong596568821xp/article/details/80797695

一、根据深度学习的任务不同,评价标准也不同,分类任务和回归任务的评价指标如下:

  • 分类:accuracy、误分类率、precision、recall、F1 score、ROC 曲线、AUC、PR曲线、AP、mAP等
  • 回归:MAE、MSE

二、符号定义

根据分类时预测与实际的情况,作出如下表格,称为混淆矩阵,其中1代表正类,0代表负类,Predicted代表预测,Actual代表实际

  • A: TN=True Negative 真负,将负类预测为负类的数量
  • B: FP=False Positive 假正,将负类预测为正类的数量,可以称为误报率
  • C: FN=False Negative 假负,将正类预测为负类的数量,可以称为漏报率
  • D: TP=True Positve 真正,将正类预测为正类的数量
  • A+B: Actual Negative 实际上负类的数量
  • C+D: Actual Positive 预测的负类数量
  • A+C: Predicted Negative 预测的负类数量
  • B+D: Predicted Positive 预测的正类数量

三、深度学习常用评价指标

1、accuracy

准确率=正确预测的正反例数/总数

ACC=(TP+TN)/(TP+TN+FP+FN)=(A+D)/(A+B+C+D)

2、precision

精确率是指分类正确的正样本占预测为正的正样本的比例

精确率是针对预测结果而言的,表示的是预测为正的样本中有多少是真正的正样本,预测为正就有两种可能,一种是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),即 P = TP / (TP+FP)

查准率、精确率=正确预测到的正例数/预测正例总数

precision=TP/(TP+FP)=D/(B+D)

3、recall

精确率是指分类正确的正样本占真正的正样本的比例

召回率是针对原来样本而言的,表示的是样本中的正例有多少被预测正确,同样也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN),即 R = TP / (TP+FN)

查全率、召回率=正确预测到的正例数/实际正例总数

recall=TP/(TP+FN)=D/(C+D)

4、ROC curve

逻辑回归里面,对于正负例的界定,通常会设一个阈值,大于阈值的为正类,小于阈值为负类。如果我们减小这个阀值,更多的样本会被识别为正类。提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。为了直观表示这一现象,此处引入ROC,ROC曲线可以用于评价一个分类器好坏。

ROC曲线的优点是不会随着类别分布的改变而改变,但这在某种程度上也是其缺点。因为负例N增加了很多,而曲线却没变,这等于产生了大量FP。像信息检索中如果主要关心正例的预测准确性的话,这就不可接受了。在类别不平衡的背景下,负例的数目众多致使FPR的增长不明显,导致ROC曲线呈现一个过分乐观的效果估计。

ROC关注两个指标:

True Positive Rate: TPR = TP / (TP+FN) → 将正例分对的概率
Fales Positive Rate: FPR = FP / (FP+TN) → 将负例错分为正例的概率
在 ROC 空间中,每个点的横坐标是 FPR,纵坐标是 TPR,这也就描绘了分类器在 TP(真正率)和 FP(假正率)间的 trade-off。

ROC曲线中的四个点和一条线:

点(0,1):即FPR=0, TPR=1,意味着FN=0且FP=0,将所有的样本都正确分类;
点(1,0):即FPR=1,TPR=0,最差分类器,避开了所有正确答案;
点(0,0):即FPR=TPR=0,FP=TP=0,分类器预测所有的样本都为负样本(negative);
点(1,1):分类器实际上预测所有的样本都为正样本。

总之:ROC曲线越接近左上角,该分类器的性能越好。

5、AUC

AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。总之:AUC值越大的分类器,正确率越高。

AUC = 1:绝对完美分类器,理想状态下,100%完美识别正负类,不管阈值怎么设定都能得出完美预测,绝大多数预测不存在完美分类器;
0.5<AUC<1:优于随机猜测。这个分类器(模型)妥善设定阈值的话,可能有预测价值;
AUC=0.5:跟随机猜测一样(例:随机丢N次硬币,正反出现的概率为50%),模型没有预测价值;
AUC<0.5:比随机猜测还差;但只要总是反预测而行,就优于随机猜测,因此不存在AUC<0.5的状况。

既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反)

6、PR曲线

PR曲线即查准率(Precision)与查全率(Recall),以查全率为坐标x轴,查准率为坐标y轴,从而画出了一条曲线。

P-R图直观地显示出学习器在样本总体上的查全率和查准率。在进行比较时,若一个学习器的P-R曲线完全被另一个学习器的曲线完全“包住”,则我们就可以断言后者的性能优于前者。

PR曲线的两个指标都聚焦于正例。类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线。

若想评估一个分类器的性能,一个比较好的方法就是:观察当阈值变化时,Precision与Recall值的变化情况。如果一个分类器的性能比较好,那么它应该有如下的表现:在Recall值增长的同时,Precision的值保持在一个很高的水平。而性能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高。通常情况下,文章中都会使用Precision-recall曲线,来显示出分类器在Precision与Recall之间的权衡。

7、AP与mAP

严格的AP就是PR曲线下的面积,mAP就是所有类AP的算术平均

但是一般都是用逼近的方法去估计这个面积,比如

approximated precision的方法:每个recall point都approximate,计算每个矩形面积求和(下图红色虚线)

Interpolated Precision的方法:从每个recall point往后看,用最大的precision作为插值来,计算每个矩形面积求和(下图蓝色虚线)

从PASCAL VOC 2007开始,就是用的类似Interpolated Precision的方法,不过稍有不同的是,VOC使用的是在固定的11个recall([.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.])的地方取precision然后来近似AP,所以又叫11-point interpolated average precision。

而从PASCAL VOC 2010开始,又摈弃了11-point interpolated average precision的计算方法,取而代之的是用所有的(recall, precision)数据点(只要是recall有改变的地方)来计算AP。具体而言就是,取所有recall改变的数据点及其后的最大的precision作为当前recall的precion(这样就能得到一条单调递减的(recall, precision)曲线)来计算矩形面积,然后累加所有小矩形,即得AP。

用上述方法分别算出各个类的AP,然后取平均,就得到mAP了。AP的计算可以直接统计该类别下的TP,FP和postitive number的总数,然后就可以一次性算出AP了。得到了各类的AP,mAP就是各类别AP的算术平均!mAP的好处是可以防止AP bias到某一个数量较多的类别上去。

8、均方误差(MSE)

MSE: Mean Squared Error 
均方误差是指参数估计值与参数真值之差平方的期望值; 
MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

9、均方根误差(RMSE )

均方误差:均方根误差是均方误差的算术平方根

10、平均绝对误差(MAE)

MAE :Mean Absolute Error 
平均绝对误差是绝对误差的平均值 
平均绝对误差能更好地反映预测值误差的实际情况.

11、标准差(SD)

SD :standard Deviation 
标准差:标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组组数据,标准差未必相同。

u表示平均值

ROC、PR参考:https://www.imooc.com/article/48072

深度学习常用评价指标相关推荐

  1. 【Maching Learning】深度学习常用评价指标(分类+回归)

    深度学习分类.回归问题评价指标 一.分类评价指标 1.1混淆矩阵 1.2准确率(Accuracy) 1.3精确率(Precision) 1.4召回率(Recall) 1.5 F1{F}_{1}F1​分 ...

  2. 深度学习常用性能评价指标

    深度学习常用性能评价指标 前言 基于准确度的指标 基于排名的指标 基于图数据的指标 前言 深度学习性能指标是用于评价深度学习模型性能的依据,是设计模型的重要依据. 基于准确度的指标 对于模型而言仅统计 ...

  3. DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)

    DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...

  4. 深度学习(二)——深度学习常用术语解释, Neural Network Zoo, CNN, Autoencoder

    Dropout(续) 除了Dropout之外,还有DropConnect.两者原理上类似,后者只隐藏神经元之间的连接. 总的来说,Dropout类似于机器学习中的L1.L2规则化等增加稀疏性的算法,也 ...

  5. 深度学习常用python库学习笔记

    深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...

  6. 自动驾驶深度学习常用中英文对照表

    自动驾驶深度学习常用中英文对照表 A B C D E F G H I J K L M N O P Q R S T U V W Z A 英文 中文 词性 activation 激活值 n,名词 acti ...

  7. Paper:机器学习、深度学习常用的国内/国外引用(References)论文参考文献集合(建议收藏,持续更新)

    Paper:机器学习.深度学习常用的国内/国外引用(References)论文参考文献集合(建议收藏,持续更新) References 1.国外格式 [1] D. E. Rumelhart, G. E ...

  8. 深度学习入门之Python小白逆袭大神系列(三)—深度学习常用Python库

    深度学习常用Python库介绍 目录 深度学习常用Python库介绍 简介 Numpy库 padas库 PIL库 Matplotlib库 简介 Python被大量应用在数据挖掘和深度学习领域,其中使用 ...

  9. 深度学习常用数学知识

    深度学习常用数学知识 为什么图片能被计算机读取?为什么我们可以用CNN对成千上万中图片进行分类,这背后的原理是什么?在了解原理之前,先给大家补点数学知识.因为无论是深度学习还是机器学习,背后都是有一些 ...

最新文章

  1. java数据和窗口怎么结合_卖jsp编程技巧的那个垃圾的所有实例的答案全部
  2. 基于注意力机制的知识图谱关系预测 ACL 2019
  3. 实践:SpringBoot实现定时任务的动态增删启停
  4. linux下串口多线程通信 ,多串口收发数据错乱问题解决办法
  5. Three.js 关于立方体贴图产生边缘锯齿问题
  6. Windows Server 2003群集配置手记(转载)
  7. [Liferay6.2]Liferay Dynamic Query API示例
  8. 手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理
  9. 上古卷轴5json文件修改_捏脸工具-RaceMenu
  10. Spring常用设计模式--抽象工厂模式
  11. 扩展工具将网页保存为PDF
  12. vue给标签动态添加元素_动态添加dom元素,并绑定vue事件
  13. 【BZOJ5316】[JSOI2018]绝地反击(网络流,计算几何,二分)
  14. day02-08 python基础语法
  15. 2019年11月计算机语言排名,2019年11月PYPL编程语言排行榜出炉
  16. java把一个文件转化为byte字节_java把一个文件转化为byte字节
  17. 计算机操作系统-磁盘存储器
  18. java构建树状结构工具类
  19. 解决PHP项目显示“该网页无法正常运作”,但没有显示报错内容
  20. 基于Qt的笛卡尔心形表白程序

热门文章

  1. 在CSS中创建径向菜单
  2. maven打包后运行:Error: Could not find or load main class ‐jar
  3. ORACLE之RAC搭建过程9-配置grid和oracle用户互信
  4. 阻抗跟踪电量计开发及量产流程
  5. android分辨率 尺寸 dpi换算
  6. java设计模式 gof_Java设计模式GOF之工厂模式
  7. ArcMap中创建网格的方法
  8. DML: 数据操作语言(添加  修改  删除)
  9. html转换为pdf c#,wkhtmltopdf - 直接在C#中将html代码转换为pdf
  10. php银行卡账户类型查询接口