赞
踩
本文以二分类问题作讨论,多分类可以类推。
总结为下表(以预测来看,预测对了相应的P或N前面就是T,否则为N,方便记忆):
所有样本中被预测正确的样本的比率,分类模型总体判断的准确率(包括了所有class的总体准确率)
预测为正类的准确率
T P / ( T P + F P ) TP / ( TP + FP ) TP/(TP+FP)
真实为正类的准确率
真实为负类的准确率
R e c a l l = T N / ( T N + F P ) Recall = TN/(TN+FP) Recall=TN/(TN+FP)
用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的准确率和召回率。F1分数可以看作是模型准确率和召回率的一种加权平均,它的最大值是1,最小值是0。
Roc (Receiver operating characteristic) 曲线是一种二元分类模型分类效果的分析工具。首先需要知道如下定义:
Roc 空间将假阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。
给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR)坐标点。
从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。
完美的预测是一个在左上角的点,在ROC空间座标 (0,1)点,X=0 代表着没有伪阳性,Y=1 代表着没有伪阴性(所有的阳性都是真阳性);也就是说,不管分类器输出结果是阳性或阴性,都是100%正确。一个随机的预测会得到位于从 (0, 0) 到 (1, 1) 对角线(也叫无识别率线)上的一个点。
对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR结果,而要得到一个曲线,我们实际上需要一系列FPR和TPR的值,这又是如何得到的呢?见如何画ROC曲线
AUC 最普遍的定义是 ROC 曲线下的面积,显然这个面积的数值不会大于1。但其实另一种定义更常用,分别随机从正负样本集中抽取一个正样本,一个负样本,正样本的预测值大于负样本的概率。后一个定义可以从前一个定义推导出来,有兴趣的可以看下 Wilcoxon-Mann-Witney Test。
AUC得含义
The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.
从AUC判断分类器(预测模型)优劣的标准:
既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。