您的位置:首页 > 其它

衡量分类器的性能指标

2015-04-06 12:25 239 查看
评价一个分类器的metric的确有不少。

error rate: 这个不讲了, 当然是错误率越低越好。

不过值得提到的就是可以通过一个被称为confusion matrix的办法直观展示classification error。 继而可以引出三个指标。

如下一个three class problem:



表示的意思是总共有8只猫, 6只狗, 13只兔子。 我们的分类器把这17只动物分成了7只猫(5个TP(true positive), 2个FP(false positive)), 8只狗(3个TP, 5个FP), 12个兔子(11个TP, 1个FP)。 所有分对了的样本都位于对角线处。 对于二类分类问题, 可以建立如下的confusion matrix:



其中False Positive 又称为type I error, False Negative 有称为Type II error。

有了上述的confusion matrix, 我们很容易计算出分类器的精度(precision), 召回率(recall), 以及综合二者优势的综合性指标Fmeasure。





注意, 高精度或者高的召回率很容易达到。 例如只要我们把所有的类都归为positive, 那么我们的召回率就是100%, 但是与此同时我们的精度却很差。 所以难点在于如何设计一个分类器, 使得两个指标均达到很高。

我们使用F measure综合去评价一个精度和召回率。 不难看出只有精度和召回率均达到很大的时候, 才会使得F指数达到很大。 也就是F指数越大, 我们的分类器的性能越好。

另一个衡量一个分类器的tool就是画出分类器的ROC曲线。 ROC 针对的是二元分类器。

ROC的横纵坐标分别是TPR(True positive rate), FPR(false positive rate)。

其中, TPR定义如下:



表示所有实际为是positve的样本被正确的判断为potive的样本数目比例。

FPR的定义如下:



表示在所有实际为negative的样本中, 被错误的分为postive的比例。

给定一个二元分类器模型, 和这个分类器的阈值, 我们从分类后的结果中就可以得到一个x = FPR, y = TPR的值。

从(0, 0)到(1, 1)这条对角线将空间分成两部分, 左上和右下区域。 在这条线的左上部分代表着一个号的分类结果(胜过随机分类), 右下的区域代表好于随机猜测了:



完美分类位于(1, 0), 表示true positive 为1, false postive 为0。 上图的虚对角线是随机猜测得到的结果。 又叫做无识别率曲线。

举个例子 100个positives, 100个negatives的训练样本。 一下是四种分类器(或者是同一分类器的四种阈值的设定):



上述四种结果在ROC空间中, 距离左上角越近的点的准确率越高,离右下角越近表明预测越不准。 不难看出三种分类器最好的是A。

B结果是随机猜测的结果了。

关于同一分类器的阈值设定。

对于同一个二元分类模型, 其阈值的设定或高或低, 每种阈值都会得到不同的FPR, TPR。 将同一个模型的每个阈值得到的(FPR, TPR)的结果画在ROC空间中, 就得到一个ROC曲线。不同的分类器, 阈值对ROC曲线形状的影响没规律可言。

对于同一个分类器之内, 阈值对分类器的影响是有一定的规律可循。

(1)阈值设为最高, 即所有样本都被分类为negative, 此时FP = 0, 所以FPR = 0%。 此时TP = 0, TPR = 0%。

所以, 我们知道阈值最高, 对应着ROC曲线的原点(0, 00)。

(2)阈值设定最低的时候, 所有的样本均分类为positive。 此时FPR = 100 %, TPR = 100 %, 位于ROC空间的位置是对角线(1, 1)。

ROC曲线下的面积AUC(area under curve)。

比较不同的分类模型的时候, 可以将每个模型的ROC曲线画出来,比较曲线下的面积作为模型优劣的指标。

有如下指标 , AUC越大, 正确率越高。 perfect classifier的AUC为1, 随机猜测的AUC为0.5.

为了画出ROC曲线, 我们需要阈值。 何为阈值? 阈值就是判断一个样本是否为postive或者negative的numeric score。 Naiive Bayes给你的阈值是一个概率。 logistic regression也是一个可以看成概率的值。 Adaboost和SVM首先计算出一个numeric value, 然后作为一个sign的输入,对于这两个分类器, 那个numeric value也是一个score。 我们每一个样本都可以计算出这样的一个numeric
value, 我们通过把这些nemeric value从小到大进行排序, 然后开始从最小的值开始, 不断设置阈值, 从下到上。 一直进行下去, 高于阈值的预测为positive, 低于阈值的预测为negative. 每个样本的score对应的就是这个样本的prediction strength。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: