推荐系统的评价指标很多,今天介绍:准确率(ACC)、查准率(P精确率)、查全率(R召回率)、F1-score、AUC值,ROC曲线、PR曲线
以上的所有指标都是依托于混淆矩阵的,所以下面简单贴一张混淆矩阵的图吐出来
混淆矩阵
以上就是混淆矩阵,其中挨个解释一下表中内容。列表示的是真实值,而行表示预测值,所以列和行的Positive和Negative所表示的含义是不一样的,列的Positive和Negative表示的是真实的正样本和负样本;而行的Positive和Negative表示的是预测出来的是正样本还是负样本。
那么TP就很好理解了,其表示的就是本身就是正样本,预测的时候也预测为正样本,从英文表示是True Positive上也是可以明白的。
TP:英文True Positive ,表示本身是正样本,预测也是正样本,预测正确
TN:英文True Negative,表示本身是负样本,预测也是负样本,预测正确
FP:英文False Positive,表示本身负样本,但是预测为正样本,预测错误
FN:英文False Negative,表示本身是正样本,但是预测为负样本,预测错误
总结一下:结合图中也可以看出,绿色对角线表示预测正确的样本,红色表示预测错误的样本。
通常模型的好坏就往往就是从模型的预测结果来判断的,但是由于混淆矩阵里面的都是具体的个数,不够直观,所以一般会考虑对齐的量纲进行一些约束,通过一些方式把他约束到0-1之间这样,所以也就在混淆矩阵的基础上衍生出了,二级指标、三级指标
二级指标
指标名 | 数学表示 | 含义 |
---|---|---|
准确率(ACC) | A c c u r a c y ( 准确率 ) = T P + T N T P + T N + F P + F N Accuracy(准确率)=\frac {TP+TN} {TP+TN+FP+FN} Accuracy(准确率)=TP+TN+FP+FNTP+TN | 预测正确的样本占所有样本的比例,其中预测正确的可能有正样本也可能有负样本。 |
查全率(精确率Precision) | P r e c i s i o n ( 查全率 P ) = T P T P + F P Precision(查全率P)=\frac {TP} {TP+FP} Precision(查全率P)=TP+FPTP | 预测出的正样本中,真正的正样本占了多少比例。 |
查准率(召回率Rcall) | 查准率 ( 召回率 R ) = T P T P + F N 查准率(召回率R)=\frac {TP} {TP+FN} 查准率(召回率R)=TP+FNTP | 预测出的真正的正样本占据所有真实正样本的比例。 |
特异度TNR | T N R = T N T N + F P TNR=\frac {TN} {TN+FP} TNR=TN+FPTN | 预测出的负样本中,真正的负样本占了多少比重 |
通过二级指标的转换,混淆矩阵的指标就成功转到0-1之间了。但是有一个新的问题出现了,这些二级指标某种意义上有些独立,就好比说查全率P和查准率R来说,当要追求一个较高时,另一个就会降低。所以需要出现三级指标,来通过某种方式,让二级指标中的某几个指标尽量整体最优。
三级指标
F1-Score
F 1 − S c o r e = 2 P R P + R F1-Score=\frac {2PR} {P+R} F1−Score=P+R2PR
P就是查全率,R就是查准率。F1-Score综合考虑了这两个指标,输出1表示模型表示最好,0则表示最差。
ROC(AUC)
首先要知道ROC曲线的横纵坐标是什么
其中坐标说明如下:
TPR(真正样本率) | T P R = T P T P + F N TPR=\frac {TP} {TP+FN} TPR=TP+FNTP |
---|---|
FPR(假正样本率) | F P R = F P F P + T N FPR=\frac {FP} {FP+TN} FPR=FP+TNFP |
如何理解这两个指标的含义呢?先看个图。
蓝色的区域是负样本所在的区域,而红色的区域是正样本所在的区域。横坐标可以认为是一些概率值
当我们在做样本预测的时候,会得到一个概率值,我们就是通过这个概率值去判定是否是正样本的。
在判定正负样本的前提是我们需要事先设定一个阈值,只有当预测值大于阈值时,才是正样本
假设黑色的这条竖线就是我们划定的阈值,那么大于黑色的部分才是正样本,而小于黑色的部分才是负样本,所以我箭头标出的两个实际样本分布重叠的那部分因为大于阈值,所以预测时候被判定为正样本,而实际上他是负样本,这就是FPR假正样本率,而右侧不重叠的地方才是真正样本率。
那么当我们设定一个阈值时就得到一对TPR,FPR,设定不同的阈值就会得到不同的FPR,TPR。然后把素有的点(FPR,TPR)绘制出来,就得到了ROC(下图左上角就是ROC曲线)。
也可以看下图
绿色线就是ROC曲线,ROC曲线和横坐标围成的面积就是AUC。
AUC的物理意义可以理解为不管是以什么阈值划分正负样本,模型对真实样本的整体的区分能力,当为0.5时,表示模型没啥作用,当为1时,表示最好。
PR曲线
献上图
横坐标为查准率(Recall),
查全率(精确率Precision)
这是从另一个角度去决定模型的能力,
- 查全率决定了模型要尽可能的召回真正的正样本
- 而查准率则表示召回的样本不要太多.但是要足够准确.
所以综合来看,PR曲线就是综合考虑了,模型要尽可能的召回所有的正样本,但又不能预判错误得太多.
通俗的说,有的人捞鱼的时候,为了尽可能的捞到自己想要的小于,这时候就把渔网孔调小,自然小于就会被打上来(Recall变大),但是同时不想要的大鱼也会被打上来(Precision变小).所以P-R曲线就是在综合考虑这个问题.