机器学习算法评价指标(1)
| 分类: 学术探讨 |
一、真阳率、假阳率、真正类率与负正类率
其概念机器学习中借助了医学诊断的一些术语。这些指标用于评价机器学习算法的好坏。首先看看其原本的含义:当我们去医院做化验,就会看到化验单或报告单中会出现(+)跟(-),其分别表型阳性和阴性。阳性(+)代表某种病理指标超常有可能患了某种疾病,反之如果是阴性(-)就说明指标正常,可能没有得病。
然而,检测结果是有误差的,其中的影响因素很多,那么到底这种检测方法的可靠性有多高呢?就引出了真阳率与假阳率的概念。所谓真阳率就是,病患确实得了某种病后该方法能检查出来的概率。反之,假阳率就是此方法误诊为阳性的概率。在机器学习中对于二值分类器问题可将实例分成正类(positive)或负类(negative)。对应的会出现四种情况即,1)一个实例是正类并且被分类器预测为正类,这样的集合被称为真正类(True
positive),记为TP-正确肯定的数目;2)如果实例是负类被预测成正类,称之为假正类(False
positive),记为FP-误报,给出的匹配是不正确的;3)如果实例是负类被预测成负类,称之为真负类(True
negative),记为TN-正确拒绝的非匹配对数;4)如果正类被预测成负类则为假负类(false
negative),记为FN-漏报或没有正确找到的匹配的数目。
如表-1所示,1代表正类,0代表负类。
实际 1 True Positive(TP)
False
Negative(FN)
Actual Positive(TP+FN)
合计 Predicted Positive(TP+FP) Predicted Negative(FN+TN)
TP+FP+FN+TN
由表-1所知:1)真正类率(true positive rate ,TPR), 为TPR=TP/ (TP+
FN),刻画的是分类器所识别出的 正实例占所有正实例的比例;2)负正类率(false positive rate,
FPR),为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例;3)真负类率(True
Negative Rate,TNR,也称为specificity),为TNR=TN/ (FP+ TN) = 1-FPR。
二、ROC曲线
在一个二分类模型中,对于所得到的连续结果,假设已确定一个阀值,比如说
0.6,大于这个值的实例划归为正类,小于这个值则划到负类中。如果减小阀值,减到0.5,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比类,即TPR,但同时也将更多的负实例当作了正实例,即提高了FPR。为了形象化这一变化,在此引入ROC,ROC曲线可以用于评价一个分类器。ROC曲线(receiver
operating characteristic curve),又称为感受性曲线(sensitivity
curve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。就是把FPR当x轴,TPR当y轴画一个二维平面直角坐标系。然后不断调整检测方法(或机器学习中的分类器)的阈值,即最终得分高于某个值就是阳性,反之就是阴性,得到不同的真阳率和假阳率数值,然后描点。就可以得到一条ROC曲线。如图-1所示:
对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR结果,而要得到一个曲线,我们实际上需要一系列FPR和TPR的值,分类器的一个重要功能“概率输出”,即表示分类器认为某个样本具有多大的概率属于正样本(或负样本)。通过更深入地了解各个分类器的内部机理,我们总能想办法得到一种概率输出。通常来说,是将一个实数范围通过某个变换映射到(0,1)区间。假如我们已经得到了所有样本的概率输出(属于正样本的概率),现在根据每个测试样本属于正样本的概率值从大到小排序。图-2是一个示例,图-2中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样),“Score”表示每个测试样本属于正样本的概率。
接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果图-3所示。
一个好的分类模型应该尽可能靠近图形的左上角,而一个随机猜测模型应位于连接点(TPR=0,FPR=0)和(TPR=1,FPR=1)的主对角线上。
三、AUC指标
ROC曲线下方的面积(Area Under the ROC Curve,
AUC)提供了评价模型平均性能的另一种方法。如果模型是完美的,那么它的AUC = 1,如果模型是个简单的随机猜测模型,那么它的AUC
= 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大。
方案一:
我们可以对于总样本中的M个正样本和N个负样本,组成
方案二:
基本思想一样,不过复杂度可以缩减到
首先,我们将所有样本得分从大到小排序,则排名最高的样本rank为M+N,第二的为M+N-1,以此类推。然后我们将所有正样本的rank加和,其思想为:排名k的正样本至多比k-1个负样本的score要大。当我们将正样本的rank加和后,再减去
注意:对score相等的样本,需要赋予相同的rank(无论这个相等的score是出现在同类样本还是不同类的样本之间,都需要这样处理)。具体操作就是把所有这些score相等的样本的rank取平均。然后再使用上述公式。比如score为0.8的有两个样本,rank为7和8,则其最终代入公式的rank为7.5。

加载中…