模型评价指标是用于量化和衡量机器学习模型性能的标准或度量。
1. 混淆矩阵
混淆矩阵是一个二维表格,如上表所示,用于比较模型的预测结果与实际结果之间的关系,特别适用于分类问题。混淆矩阵详尽地列出了四种不同分类结果的数量,即真正例(TP,即模型正确预测为正样本的实例数)、假正例(FP,即模型错误地将负样本预测为正样本的实例数)、真负例(TN,即模型正确预测为负样本的实例数)以及假负例(FN,即模型错误地将正样本预测为负样本的实例数)。混淆矩阵是准确率、精确率和召回率的计算基础,它在处理多类别分类问题时,可能需要使用多个混淆矩阵,难以直观比较。
基于样本预测值和真实值是否相符,可得到4种结果:
- TP(True Positive):样本预测值与真实值相符且均为正,即真阳性
- FP(False Positive):样本预测值为正而真实值为负,即假阳性
- FN(False Negative):样本预测值为负而真实值为正,即假阴性
- TN(True Negative):样本预测值与真实值相符且均为负,即真阴性
两类错误:
- 第一类错误:原假设是正确的,而判断它为错误的
- 第二类错误:原假设是错误的,而判断它为正确的
2. 准确度(Accuracy)
准确度(Accuracy, Acc):准确度是所有预测中预测正确的比例。
准确率是模型正确预测的样本数占总样本数的比例,优点是直观易懂,通常作为模型的初步评估指标,但不适用于数据不平衡的问题,通常用于平衡类别分布的分类问题。
3. 精确率(Precision)
Precision,准确率/查准率,需要注意的是, Precision 和 Accuracy 不一样,Accuracy 针对所有样本,而 Precision 仅针对预测出来(包括误检)的那一部分样本。
精确率表示模型预测为正类别的样本中,有多少是真正的正类别。它关注模型对正类别的预测准确性,对假正例敏感,适用于关注预测结果准确性的问题,如垃圾邮件分类。
4. 召回率(Recall)
召回率表示真正的正类别中有多少被模型正确预测出来,关注模型对正类别的覆盖范围,对假负例敏感,适用于关注覆盖率和漏检率的问题,如疾病检测。
例如,有一个池塘,里面共有1000条鱼,含100条鲫鱼。机器学习分类系统将这1000条鱼全部分类为“不是鲫鱼”,那么准确率也有90%(显然这样的分类系统是失败的),然而查全率为0%,因为没有鲫鱼样本被分对。这个例子显示出一个成功的分类系统必须同时考虑Precision和Recall,尤其是面对一个不平衡分类问题。
5. AUC(Area Under Curve)
如下图所示,AUC被定义为ROC曲线下的面积,ROC(Receiver operating characteristic) 曲线其纵轴代表真正例率(TPR,亦称为召回率),横轴则反映假正例率(FPR),有效地展现了模型在不同分类阈值下的性能表现。一个完美的分类器将会使得ROC曲线尽可能接近左上角,即TPR接近1而FPR接近0。而一个性能较差的分类器则可能使得ROC曲线更接近对角线。在正负样本分布发生变动时,ROC曲线形状能够保持相对稳定,这一特点使得ROC曲线在评估模型性能时能够抵御样本分布变化所带来的影响,提供了更为准确和稳定的评估结果。AUC是对ROC曲线下的面积进行量化的一种指标,AUC的值介于0到1之间,值越大表示分类器的性能越好。
对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR;而要得到一个曲线,实际上需要一系列的FPR和TPR的值,可以利用sigmoid函数计算样本预测输出为正的概率,然后根据设置不同的threshold,来获得多组FPR和TPR的值。
ROC曲线越接近左上角(0, 1),说明模型性能越好,此位置TPR较高且FPR较低。AUC值表示ROC曲线下的面积,AUC值的范围通常在0.5到1之间,表示模型在所有可能的分类阈值下,正确分类的比例,通常用于二分类问题。
AUC值是一个概率值,当随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化
样本有偏,ACC很容易掩盖问题,但是AUC却可以出淤泥而不染!
6. AP(Average precision)
查准率和查全率是一对矛盾的度量,一般而言,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。从直观理解确实如此:我们如果希望好瓜尽可能多地选出来,则可以通过增加选瓜的数量来实现,如果将所有瓜都选上了,那么所有好瓜也必然被选上,但是这样查准率就会越低;若希望选出的瓜中好瓜的比例尽可能高,则只选最有把握的瓜,但这样难免会漏掉不少好瓜,导致查全率较低。通常只有在一些简单任务中,才可能使查全率和查准率都很高。所以为了更全面的衡量模型的性能提出了 AP。
AP表示平均精度,是用于评估单个类别目标检测模型性能的指标,在目标检测任务中,每个类别都有自己的AP值。AP值反映了模型在单个类别上的准确率和召回率之间的平衡。AP的计算方式为首先对检测结果按照置信度(或者其他得分)进行排序,再计算在不同的召回率下的精确率值(Precision-Recall曲线),最后对 Precision-Recall曲线下的面积进行积分,得到AP值:
其中,precision(r)表示在召回率为r时的精确率。
注意⚠️:AP 的值就是 PR 曲线与 x 轴和 y 轴所围成图形的面积,不是Precision的平均值!!(根据不同的置信度阈值 (p_threshold),计算出这模型得到的对某个类别的R、P,然后作出PR曲线,并求解面积,就能得到分类模型对该类别的AP。)
Precision-recall曲线(PR曲线)(Precision Recall Curve),即横轴为 Recall,竖轴为 Precision。PR曲线的横轴Recall也就是TPR,反映了分类器对正例的覆盖能力。而纵轴Precision反映了分类器预测正例的准确程度。那么,Precision-recall曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。对于随机分类器而言,其Precision固定的等于样本中正例的比例,不随recall的变化而变化。
7. mAP
mAP表示平均精度均值,是多个类别AP值的平均值,用于评估整个目标检测系统的性能。mAP考虑了每个类别的不平衡性,因此更能反映模型在多个类别上的整体表现。mAP的计算方式为首先计算每个类别的AP值,再将所有类别的AP值进行平均,得到mAP值:
mAP 是从类别的维度对 AP 进行平均,因此可以评价多分类器的性能。
AP与mAP的区别⚠️:
- AP是对所有图片内的某一类来说
- AP是对不同召回率点上的精度进行平均(即PR曲线下的面积)
- mAP(Mean Average Percision)是针对多类来说,多个物体类别的AP平均
- mAP的对象是所有类的所有图片,衡量的是学出的模型在所有类别上的好坏
AUC与mAP的区别⚠️:
- AUC主要考察模型对正样本以及负样本的覆盖能力(即“找的全”)
- mAP主要考察模型对正样本的覆盖能力以及识别能力(即对正样本的“找的全”和“找的对”)
AP和mAP是评估目标检测模型性能的重要指标,通常在计算机视觉领域中广泛应用,在实际应用中,通过调整模型参数、改进算法和增加训练数据等方式,来提高模型的AP和mAP值,从而提升目标检测的准确性和稳定性。
8. F1 score
Precision体现了模型对负样本的区分能力,Precision越高,模型对负样本的区分能力越强;Recall体现了模型对正样本的识别能力,Recall越高,模型对正样本的识别能力越强。F1 score是两者的综合,F1 score越高,说明模型越稳健。
F1分数是精确率和召回率的调和平均,当需要兼顾模型的准确性和覆盖率时,F1分数是一个常用的评价指标。
9. 其他常见指标:
Hamming loss(汉明损失),该指标衡量了预测所得标记与样本实际标记之间的不一致程度,即样本具 有标记y但未被识别出,或不具有标记y却别误判的可能性。例如对于一个多标签问题,某样本的真实标签为1,0,1,预测标签为0,1,1,有2个对1个错,Hamming loss=1/3。此评估指标值越小越好。
one-error,用来计算在测试文件集中,测试结果分类值(取值0~1)最高的标签不在实际分类标签中的文件数。如预测分类值为{0.3,0.8,0.2,0.5},其实际分类标签为{1,0,0,1}时,分类值最高的是第二个标签,但他并不在实际分类标签中,因此one-error评估值是1/4。同样,此评估值越小越好。
coverage,用于计算在整个测试文件集中,实际分类标签在预测分类标签中的最大rank值的平均值。如预测分类标签为{0.3,0.8,0.2,0.5},rank即为{3,1,4,2}。当实际分类标签为{1,0,0,1}时,此测试集的coverage评估值为2。同样,此评估值越小越好。
ranking loss,用于计算预测分类标记与实际分类标记中,rank排名相反的次数。此评估值越小越好。