分类算法中常用的评价指标

简介:

本文来自网络,属于对各评价指标的总结,如果看完之后,还不是很理解,可以针对每个评价指标再单独搜索一些学习资料。加油~!

对于分类算法,常用的评价指标有:

(1)Precision

(2)Recall

(3)F-score

(4)Accuracy

(5)ROC

(6)AUC

ps:不建议翻译成中文,尤其是Precision和Accuracy,容易引起歧义。

1.混淆矩阵

混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。

图1 混淆矩阵

如图1所示,在混淆矩阵中,包含以下四种数据:

a、真正(True Positive , TP):被模型预测为正的正样本

b、假正(False Positive , FP):被模型预测为正的负样本

c、假负(False Negative , FN):被模型预测为负的正样本

d、真负(True Negative , TN):被模型预测为负的负样本

根据这四种数据,有四个比较重要的比率,其中TPR和TNR更为常用:

  • 真正率(True Positive Rate , TPR)【灵敏度(sensitivity)】:TPR = TP /(TP + FN) ,即正样本预测结果数/ 正样本实际数
  • 假负率(False Negative Rate ,  FNR) :FNR = FN /(TP + FN) ,即被预测为负的正样本结果数/正样本实际数
  • 假正率(False Positive Rate ,  FPR)  :FPR = FP /(FP + TN) ,即被预测为正的负样本结果数 /负样本实际数
  • 真负率(True Negative Rate , TNR)【特指度(specificity)】:TNR = TN /(TN + FP) ,即负样本预测结果数 / 负样本实际数 

2.评价指标

1)(Precision)P = TP/(TP+FP)

2)(Recall)R = TP/(TP+FN),即真正率

3)F-score:Precision和Recall的调和平均值, 更接近于P, R两个数较小的那个: F=2* P* R/(P + R)

4)(Aaccuracy): 分类器对整个样本的判定能力,即将正的判定为正,负的判定为负: A = (TP + TN)/(TP + FN + FP + TN)  

5)ROC(Receiver Operating Characteristic):ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve,横坐标为false positive rate(FPR),纵坐标为true positive rate(TPR)。

如何画ROC曲线?

对于二值分类问题,实例的值往往是连续值,通过设定一个阈值,将实例分类到正类或者负类(比如大于阈值划分为正类)。因此,可以变化阈值,根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve。ROC curve经过(0,0) (1,1),实际上(0,0)和(1,1)连线形成的ROC curve实际上代表的是一个随机分类器。一般情况下,这个曲线都应该处于(0,0)和(1,1)连线的上方,如图2所示。

图2 ROC曲线

ROC上几个关键点的解释:

(TPR=0,FPR=0):把每个实例都预测为负类的模型

(TPR=1,FPR=1):把每个实例都预测为正类的模型

(TPR=1,FPR=0):理想模型,全部预测正确

(TPR=0,FPR=1):最差模型,全部预测错误

 一个好的分类模型应该尽可能靠近图形的左上角,而一个随机猜测模型应位于连接点(TPR=0,FPR=0)和(TPR=1,FPR=1)的主对角线上。

既然已经这么多评价标准,为什么还要使用ROC和AUC呢?

因为ROC曲线有个很好的特性:当测试集的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。 

6)AUC(Area Under ROC Curve)

AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。如果模型是完美的,那么它的AUG = 1,如果模型是个简单的随机猜测模型,那么它的AUG = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大。


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5241010.html,如需转载请自行联系原作者

相关文章
|
6月前
|
机器学习/深度学习 算法 Python
【Python机器学习】分类算法任务、分类模型评价指标详解(图文解释)
【Python机器学习】分类算法任务、分类模型评价指标详解(图文解释)
186 0
|
机器学习/深度学习 数据采集 人工智能
机器学习基础知识——基本原理、常用算法与评估指标
机器学习基础知识——基本原理、常用算法与评估指标
681 0
|
6月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)
【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)
425 0
|
6月前
|
算法
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
|
3月前
|
数据采集 算法 数据可视化
基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好
本文介绍了基于Python实现的k-means聚类分析算法,并通过微博考研话题的数据清洗、聚类数量评估、聚类分析实现与结果可视化等步骤,展示了该算法在文本聚类领域的应用效果。
|
28天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
53 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
6月前
|
机器学习/深度学习 自然语言处理 算法
|
5月前
|
机器学习/深度学习 人工智能 算法
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
```markdown # ROC曲线与AUC详解:评估分类模型利器 本文深入浅出解释ROC曲线和AUC,通过实例和代码帮助理解其在模型评估中的重要性,旨在提升对分类模型性能的理解和应用。 ```
305 13
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
|
6月前
|
算法 调度 UED
【操作系统】调度算法的评价指标和三种调度算法
【操作系统】调度算法的评价指标和三种调度算法
147 2
|
5月前
|
机器学习/深度学习 算法 数据可视化
【机器学习】分类与预测算法的评价与优化
【机器学习】分类与预测算法的评价与优化
97 0
下一篇
无影云桌面