📐推荐系统中常见的二分类效果指标
type
status
date
slug
summary
tags
category
icon
password
AUC、GAUC、Accuracy、Precision、Recall、F1 Score、 Score、ROC曲线、PR曲线
AUC
AUC(Area under Curve)作为推荐系统排序模型最常见的评估指标,表示正样本预估为正的概率值大于负样本预估为正的概率值的可能性(概率)。
- AUC为1的分类器是完美分类器,可以完美的把正负样本区分开;
- AUC为0.5的分类器是随机分类,无实际意义;
- AUC小于0.5的分类器表现差于随机分类,但是仍有使用价值,可以反向预估。
- AUC大于0.5的分类器表现优于随机分类,根据具体应用场景,会有较好的效果。
- AUC值越大,当前分类器越有可能将正样本排在负样本前面,从而能够更好地分类。
AUC的计算可以采用三种方式:
- 采用统计的方法计算,取M个正样本,N个负样本,遍历所有正负样本对,统计正样本预估值大于负样本预估值的数量占总数的比例。该方法的时间复杂度为。
其中,
- 优化统计计算的方法,采用如下公式,将时间复杂度降为。
其中,为正样本个数,为负样本个数,表示正样本在预测值从小到大排序的顺序号,当前数的就代表当前数与其排在前面的数能够形成多少对。为正样本-其他正样本”和“正样本-自身”对的个数,分子减掉该项之后就是满足条件正负样本对的个数。从1开始排,并且如果几个样本的预测值相同,则在计算时需要取平均值。
- 采用ROC曲线计算,ROC曲线下的面积即为AUC值。具体可以取多个正例概率阈值,将整个面积切割成多个梯形进行近似计算。
Python计算代码
GAUC
GAUC (Group AUC)是分别计算每个用户的AUC,然后加权平均,最后得到Group AUC。实际处理时权重一般可以设为每个用户expose或click的次数,而且需要过滤掉单个用户全是正样本或负样本的情况,具体公式如下:
离线的时候,AUC和GAUC两个指标最好都关注。实践中,不要太刻意追求离线验证集的很高的AUC,太高的验证集的AUC可能表示模型过拟合到这个验证集了,线上效果可能会很差。一般离线的AUC可能在0.7~0.85之间就可以上线。
混淆矩阵
混淆矩阵由如下两个维度构成:样本的实际Label和样本被模型预测出来的Label。
ㅤ | 预测为正 | 预测为负 |
实际为正 | True Positive(TP) | False Negative(FN) |
实际为负 | False Positive(FP) | True Negative(TN) |
TP:真正,正样本预测为正
FP:假正,负样本预测为正
FN:假负,正样本预测为负
TN:真负,负样本预测为负
TPR:真阳率(召回率),TP/(TP+FN)
FPR:假阳率,FP/(FP+TN)
Accuracy(准确率)
Accuracy是正确预测的正负样本数预测总数。准确率是预测正确的结果占总样本的百分比,是很自然就会想到的指标,但很多项目场景都不适用!最主要的原因是样本不平衡,正样本数目过多,或者负样本数目过多,导致不能反应出模型对正负样本的区分能力。因此如果样本不平衡,准确率就会失效。
准确度越高,说明模型总体预测能力越强,能平衡误判为正和误判为负的情况。
Precision(精确率,又称查准率)
精确率是衡量模型正确预测的正样本比例的指标,它表达了在所有被预测为正的样本中,有多少是真正的正样本。
精确度越高,说明模型对正样本的识别能力越强,能避免误判为负的情况。
Recall(召回率,又称查全率)
召回率是衡量模型能找出多少真正的正样本的能力,它表达了在所有的正样本中,有多少被正确预测为正。
召回率是召回通道模型比较关心的指标,召回模型比排序模型可以有更大的输出集,因此,一定程度上允许较大的FP,即Precision可以比较小,但FN要尽可能小,即Recall要尽可能大,直观的理解为尽可能全面地增加可能带来用户点击的候选集,把盘子做大,Precision的提升交给后续排序模型来做。
召回率越高,说明模型能尽可能找出所有的正样本。
在机器学习和深度学习任务中,以上三个指标(Accuracy、Precision、Recall)经常被用来评估模型的性能,而且它们之间存在权衡关系。例如,一个模型可能以较高的精确度来换取较低的召回率,或者反过来。这种权衡通常由模型的特性或者数据的分布情况决定。例如,如果一个模型对所有的样本都倾向于预测为负,那么它的精确度可能会很高,但召回率会很低。反之,如果一个模型对所有的样本都倾向于预测为正,那么它的召回率可能会很高,但精确度会很低。
F1 Score
为了综合考虑精确率与召回率,我们可以使用F1 Score,它是精确率和召回率的调和平均数。F1分数的计算公式为:
即
Precision和Recall越大,F1分值越高。F1分数越高,说明模型在精确度和召回率之间的平衡能力越好,既获得了较高的精确率,同时获得了较高的召回率。
Score
分数是分数的通用版本。它计算调和平均值,就像F1分数一样,但优先考虑精确率或召回率。是召回率的权重系数,该系数是用户设置的超参。
除了分数之外,()分数和()分数在统计学中也得到大量的应用。分数认为召回率和精确率同等重要,分数认为召回率的重要程度是精确率的2倍,而分数认为召回率的重要程度是精确率的一半。
ROC曲线
ROC 曲线是一种坐标图式的分析工具,是由二战中的电子和雷达工程师发明的,发明之初是用来侦测敌军飞机、船舰,后来被应用于医学、生物学、犯罪心理学。如今,ROC 曲线已经被广泛应用于机器学习领域的模型评估。
下图中的蓝色曲线就是 ROC 曲线,它常被用来评价二值分类器的优劣,即评估模型预测的准确度。
ROC曲线的坐标系中y轴为 TPR(真阳率、召回率),x轴为 FPR(假阳率),虚线为基准线(最低标准),蓝色的曲线就是 ROC 曲线。其中 ROC 曲线距离基准线越远,则说明该模型的预测效果越好。
- ROC 曲线接近左上角:模型预测的样本Score排序越好,正负样本区分能力越强
- ROC 曲线略高于基准线:模型预测准确率一般
- ROC 低于基准线:模型未达到最低标准,无法使用
PR曲线
PR曲线的坐标系中y轴为Precision(精确率),横轴为 Recall(召回率)。对于样本不均衡问题,用PR曲线评估会不太准确,而ROC曲线受影响不大。PR曲线示例如下: