Preliminary
- TP:实际为P,预测为P
- TN:实际为N,预测为N
- FP:实际为N,预测为P
- FN:实际为P,预测为N
如何记忆:
- TP/TN: 以T开头,表明预测正确,预测即为第二个字母
- FP/FN: 以F开头,表明预测错误,预测与第二个字母相反
Accuracy
最简单也是最好理解的,也是我们很早就开始接触的一个指标就是准确率,即预测正确的样本除以总样本数
Recall, Precision, F1
- Recall(召回率):预测正确的正类在正类样本中的比例(针对于样本真实情况)
- Precision(精确率):预测正确的正类在预测为正类中的比例(针对于预测情况)
- F1:两者通常难以兼得,因此引入两者的调和平均,来得到一个trade-off的值
micro 与macro
有时我们如果多次训练或测试,每次都有一个混淆矩阵,或者多分类任务,此时需要综合考虑recall,precision,f1
P-R曲线
对于一个模型最终输出的分类结果,不同的阈值,可以得到不同的precision与recall,将其绘制成一条曲线。
- 如果一个模型的P-R曲线完全被另外一个模型的曲线“包住”,如下图的A与C,在Precision相等的情况下,
,在Recall相等的情况下,
,因此A模型由于C模型。
- 如果两条曲线有交点(比如A与B),可以将曲线与x轴形成的面积作为一个评估指标,但是这个值不容易计算,因此有了以下衡量方法:
- BEP(Break-event Point),平衡点,Recall与precision相等的时候的取值,此时比较A优于B(取BEP大的)
-
F1值
图源机器学习——周志华
ROC与AUC-解决样本分布不均衡
ROC
ROC:Receiver Operating Characteristic,横轴:FPR(假正例率,在所有负例中,有多少被识别为正例),纵轴:TPR(真正例率,在所有正例中,有多少被识别为正例)
与P-C曲线类似,在取不同阈值的时候,可以得到多个TPR与多个FPR,将其绘制成一条曲线,即得到了ROC曲线。
- (0,0)点:当阈值等于1时,即把所有样本都预测为反例时,此时TPR与FPR均为0,因此ROC曲线过原点。
- (1,1)点:当阈值等于0时,即把所有样本都预测为正例,此时TPR与FPR均为1,因此ROC曲线一定过(1,1)点
AUC
当比较两个分类模型的性能时,如果一个模型A的ROC曲线完全包住了另一个模型B,那么前者的性能优于后者(当真正例率相等时,A的假正例率低于B,反之亦然),而如果有交点,此时我们可以比较ROC曲线下的面积,即AUC(Area under ROC curve)。
AUC:若ROC曲线为y=x,表示的意义是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的。而我们希望分类器达到的效果是:对于真实类别为1的样本,分类器预测为1的概率(即TPRate),要大于真实类别为0而预测类别为1的概率(即FPRate),即y>x
AUC的含义:AUC是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
ROC与AUC的优势
准确率有时并不可靠,比如在100个样本当中,90个为正例,10个为负例。此时如果一个模型将所有样本预测为positive,准确率也有90%。但是ROC曲线不受到样本分布不均衡的影响,因为其横坐标与纵坐标都是在真实的正样本和负样本当中观察问题。
同样的例子,TPR 只关注 90% 正样本中有多少是被真正预测的,而与10%毫无关系,同理,FPR 只关注 10% 负样本中有多少是被错误预测的,也与那 90%无关系,因此选用TPR和FPR可以避免样本分布不均衡的问题。
几种情况
- AUC = 1:是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
- 0.5 < AUC < 1:优于随机猜测。如果这个模型阈值设定合理,有预测价值。
- AUC = 0.5:跟随机猜测一样(例:丢铜板),模型没有预测价值。
- 0<AUC < 0.5:比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
- AUC=0:模型的预测完全相反,把所有正样本预测为负例,把所有负样本预测为正例
下图为以上五种情况对应的AUC值、ROC曲线和模型预测样本分布,其中模型预测样本分布中,横坐标表示模型输出的score,纵轴表示该预测值的样本数/总样本数
有关混淆矩阵,不同比值的含义
-
:召回率,查全率,sensitivity,灵敏度,真正例率,TPR,含义:在所有负例中,有多少被识别为正例
-
:精确率,在所有识别为正例的样本当中,有多少是真的正例
-
:Specificity,特异度,真负例率,在所有负例当中,有多少是真的负例
-
:假正例率,含义:在所有负例中,有多少被识别为正例
参考
如何理解机器学习和统计中的AUC?
如何深刻理解 AUC-ROC 曲线
micro, macro, weighted F1的计算