在以往的印象中,我对这些评价指标算是比较熟悉的。知道一次跟人聊起,发现自己现在已经完全记不清这些指标的意义了,现查阅相关资料之后,将其记录于此。
混淆矩阵
一个二分类问题,会将样本分成正类(positive)和负类(negative),所以对于二分类问题来说,算法结果会出现四种情况:
- 真实正类预测成正类(TP: True Positive)
- 真实负类预测成正类(FP: False Positive)
- 真实正类预测成负类(FN: False Negative)
- 真实负类预测成负类(TN: True Negative)
绘成矩阵形式即为混淆矩阵:
预测1 | 预测0 | |
---|---|---|
真实1 | TP | FN |
真实0 | FP | TN |
TPR,FPR
真正类率(True Positive Rate,TPR):预测出的正类占所有真正正类的比率
负正类率(False Positive Rate,FPR):预测为正类的负例占所有负例的比率
精准率Precision、召回率Recall、F1值
精准率Precision:预测为正例的样本中正确的比例,衡量的是模型的查准率。
准确率Accuracy:所有预测正确的样本(包括正例和负例)中正确的比例
在样本不平均的情况下, 准确率这个评价指标有比较大的问题。例如,在正负比例为1:999的样本中,如果全部将样本预测成负类,那么准确率也有99.9%,然而此时的准确率却没有什么意义。
召回率Recall:所有的正类样本中,被正确预测为正类的样本所占的比率,衡量的是模型的查全率。
F1值:在大多数情况下, 一个模型的精准率和召回率往往会存在矛盾的情况,精准率越高,召回率越低,相反,召回率越高,精准率越低。因此有精确率和召回率的调和均值:
ROC曲线
ROC(receiver operating characteristic curve):接受者操作特征曲线,用来反映敏感性和特异性连续变量的综合指标,曲线上的每个点反映这对同一信号刺激的感受性。
image.png该曲线绘制了以下两个参数:
-
真正例率(True Positive Rate, TPR):预测为正且实际为正的样本占所有正例样本的比例,即召回率。
-
假正例率(False Positive Rate, FPR):预测为正但实际为负的样本占所有负例样本的比例。
ROC 曲线中的每个点表示不同分类阈值时的 TPR 与 FPR。
当阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。
阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。
理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好。
ROC 曲线下面积 AUC(Area Under Curve)
很多时候 ROC 曲线并不能清晰的说明哪个分类器的效果更好,因此使用AUC来评判分类器的效果。
曲线下面积表示“ROC 曲线下面积”。也就是说,曲线下面积测量的是从 (0,0) 到 (1,1) 之间整个 ROC 曲线以下的整个二维面积。显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在0.5和1之间。
K-S 曲线
KS曲线和 ROC 曲线的画法有很大不同, LR 模型为例,首先把 LR 模型输出的概率从大到小排序,然后取所有分数值中的十分位点值作为阀值,计算出不同的 FPR 和 TPR 值,以10% * k(k=1,2,3, … ,9)为横坐标,分别以 TPR 和 FPR 的值为纵坐标,就可以画出两个曲线,这就是K-S曲线。
1553616536374.pngKS = max(TPR - FPR),即是两条曲线之间的最大间隔距离。当 (TPR - FPR) 最大时,即 ΔTPR - ΔFPR = 0,这和 ROC 曲线上找最优阀值的条件 ΔTPR = ΔFPR 是一样的。
网友评论