机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC

在一个理想的世界里,我们的模型能够给出完全准确的分类判断,但事实是模型总是会出错的。

All models are wrong, but some works. - Some smart guy

在进行模型的性能评价时,常用的指标有准确性、查准率和查全率等指标,这几个指标的计算公式实际上非常简单,但这几个看似简单的量实际在计算中很容易就被混淆,而幸好我们可以通过图表而非记忆的方式准确的进行描述,这一统计分类结果中真阳性 True positives,假阳性 False positives,假阴性 False negatives,真阴性 True negatives 的数量的矩阵称为混淆矩阵 Confusion matrix

准确性

准确性是最容易理解的概念:

  • Accuracy = (True positives + True negatives) / all samples
机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC_第1张图片
Confusion matrix and accuracy calculation, from Udacity

在 sklearn 中可以轻松的统计准确性:

from sklearn.metrics import accuracy_score
accuracy = accuracy_score (y_labeled, y_predicted)

查准率 Precision 和查全率 Recall

由于在很多实际应用中,仅仅关心正确分类的结果是不够的,并且在数据偏斜严重的情况下,模型准确率可能具有相当程度的误导性。我们也需要知道被错误分类的结果,如假阳性 False positive 和假阴性 False negative 的发生情况,以确认为此需要承担的分类错误的代价。

查准率 Precision: 真阳性样本数量与所有被分类为阳性的样本的数量的比值。

  • Precision = True positives / (True positives + False positives)
机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC_第2张图片
Precision in all positives, from Udacity

查全率 Recall:真阳性样本数量与样本集中全部阳性样本的数量的比值。

  • Recall = True positives / (True positives + False negatives)
机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC_第3张图片
Recall in all sick patients, from Udacity

F1 Score & Fβ Score

F1 Score 这一评价计算查准率和查全率的调和平均数 Harmonic mean,当二者之一过小时,F1-Score 也会非常小,进而提示模型异常。

  • F1-Score = 2 * Precision * Recall / (Precision + Recall)

进一步地,当我们希望模型给予查准率或查全率二者之一更高的权重时,我们可以采用泛化的 Fβ Score:

  • Fβ Score = (1 + β2) * Precision * Recall / (β2 * Precision + Recall)

其中 β 越大,模型越倾向于提高查全率,反之亦然。

敏感度和特异度

在很多领域的应用中查全率 Recall 也称为敏感度 Sensitivity,对应的数据为上文所述的混同矩阵的第一行,对应敏感度还有另外一个评价指标特异度 Specifity,对应的数据为上文所述的混同矩阵的第二行,其计算公式为:

  • Specificity = True negatives / (True negatives + False positives)

  • Sensitivity = True positives / (True positives + False negatives)

这几个公式看起来非常简单,但实际上能够准确的区分并不容易,可以在清楚概念的基础上查询使用即可。

ROC Curve

由于在建模过程中可以在确保准确性不变的情况下选择不同的判断阈值 Decision Rule 而造成 Sensitivity 和 Specificity 的值的不同,因此需要根据实际应用来确定尽最大可能提高哪一个指标,为了描述模型在不同的判断阈值下的敏感度和 (1- 特异度)的变化情况,可以绘制 ROC 曲线来观察这一趋势。

一个有趣的事实是 ROC 对应的英文单词为 Receiver Operating Characteristic,其最早源自于雷达性能测试,但由于这个方法被广泛的用于其它领域而为了避免不同领域的使用者被这个全名迷惑,通常只提它的缩写名称 ROC。图中对应的绿色直线为随机判断情况下的 ROC 曲线,而 ROC 曲线下的面积被称为 Area Under Curve,在对比不同的模型时,AUC 值越大的模型越好。

机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC_第4张图片
image.png

混淆矩阵

上文提到的混淆矩阵只是最简单的情况,当我们进行多分类建模时,其横纵坐标可以变成多个不同的分类。

在理想情况下混同矩阵将是一个单位阵,但真实情况中我们只能尽量的提高对角线元素的值,每一行元素之和为 1.

机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC_第5张图片
Confusion Matrix, from Udacity

R2 Score

针对线性回归问题来说,除了均方误差 MSE/SSE 外,还可以通过 R2 Score 来衡量,这一指标也被称为 Coefficient of Determination,其计算方法为:

  • Sum of Squares Due to Error, SSE = Σ(yi - ŷi)2

  • Sum of Squares Due to Regression, SSR = Σ(ŷi - ȳi)2

  • R2 = 1 - SSR/SSE

R2 取值越接近于 1 越好。

mAP, mean Average Precision

在视觉应用中,用于评价模型在目标检测任务中的表现,具体计算见参考阅读。

参考阅读

  1. Measures of Predictive Models: Sensitivity and Specificity

  2. What is ROC curve

  3. ROC curves - What are they and how are they used

  4. 8 Tactics To Combat Imbalanced Training Data

  5. mAP (mean Average Precision) for Object Detection

6 Measuring Object Detection models — mAP 

你可能感兴趣的:(机器学习模型评价指标 - 准确性,查准率,查全率,敏感度,特异度,ROC)