一、单个分类器指标评价
P = TP + FN 正样本总数
N = FP + TN 负样本总数
FPR = FP/N 负样本中被误判为正样本的样本数/ 负样本总数 (负样本误判率,虚警率)
TPR = TP/P 正样本中被正确分类样本数/ 正样本总数(正样本正确率,召回率,检测概率)
Accuracy = (TP+TN)/(P+N) 正确分类的总样本数/总样本数 (正确率)
Recall = TPR 正样本正确率
Precision = TP/(TP+FP) 正确分类的正样本数/被判为正样本的总数
ROC
TPR为纵轴, FPR为横轴
检测概率,虚警率工作特性曲线
理解四个点和一条线
(0,1) FPR =0 所有负样本都被正确分类,没有误判为正样本的情况;TPR = 1所有正样本都被正确分类。综上,所有正确样本都被正确分类,理想分类器
(1,0)所有负样本都被误判为正样本,所有正样本都被误判为负样本。综上,所有样本都被误判,最差分类器。
(0,0)所有负样本都被判为负样本,所有正样本也都被判为负样本。综上,所有样本都被判为负样本,属于一边倒,倒向负样本。
(1,1)所有样本被判为正样本,一边倒向正样本。
y = x对角线 如其中一点FPR = 0.1, TPR = 0.1 负样本有10%被误判为正样本,正样本有90%被误判为负样本。再如 FPR = 0.5, TPR = 0.5 正负样本正确率和错误率均为50%,属于等概率随机猜测分类器。
为什么使用ROC曲线
既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
它比precision-recall曲线面对正负样本不均衡时指标更稳定
如何得到ROC曲线
设置不同的判决阈值(正负样本的打分值,可以是概率,比如认为打分值大于0.6认为是正样本),得到一簇分类器,计算每个分类器的TPR,TFR,把这些点连起来就得到了ROC曲线阈值取得越细,ROC曲线越平滑。
指标的权衡
从以上分析可以看出,上分类器的模型选择上,我们希望优化的目标有两个,一个目标是使FPR尽可能小,一个目标是使TPR尽可能大。有点类似于GPS接收机设计里的虚警率与检测概率的权衡,一般我们会设定一个虚警率指标值(一般比较小,比如≤1%),然后去优化检测概率,使检测概率最大,由此得到一系列接收机的技术参数。 这两个参数不能同时被优化,是一对矛盾。为什么是一对矛盾?因为阈值设置的越低,检测概率越高,但是虚警率也会升高(分类器会误把噪声也当做信号来看待)。相反,阈值设置的越高,虚警率越低(噪声越不易被误判),但是检测概率也会降低(会扣掉被噪声干扰的弱信号的判决)。
二、不同分类器的比较
AUC
用来比较不同分类的好坏
AUC是ROC曲线的积分,取值一般在0.5~1之间,认为AUC值越大,分类器越好。
AUC值为0.5表示随机猜测