混淆矩阵
于是,我们定义两个变量
所以FPR较小趋于0(在所有真实负样本中,基本没有预测为正的样本),TRP较大趋于1(在所有真实正样本中,基本全都是预测为正的样本)
ROC
在二分类(0,1)的模型中,一般我们最后的输出是一个概率值,表示结果是1的概率。那么我们最后怎么决定输入的x是属于0或1呢?我们需要一个阈值,超过这个阈值则归类为1,低于这个阈值就归类为0。所以,不同的阈值会导致分类的结果不同,也就是混淆矩阵不一样了,FPR和TPR也就不一样了。所以当阈值从0开始慢慢移动到1的过程,就会形成很多对(FPR, TPR)的值,将它们画在坐标系上,就是所谓的ROC曲线了。
用ROC来评估分类器的分类质量,我们就可以通过计算AUC(ROC曲线下的面积)来评估了,这就是AUC的目的。
样本不平衡时候的roc曲线变化
auc
AUC表示的是正例排在负例前面的概率。
优点:
- AUC衡量的是一种排序能力,因此特别适合排序类业务;
- AUC对正负样本均衡并不敏感,在样本不均衡的情况下,也可以做出合理的评估。
- 其他指标比如precision,recall,F1,根据区分正负样本阈值的变化会有不同的结果,而AUC不需要手动设定阈值,是一种整体上的衡量方法。
缺点:
- 忽略了预测的概率值和模型的拟合程度;
- AUC反映了太过笼统的信息。无法反映召回率、精确率等在实际业务中经常关心的指标;(太笼统)
- 它没有给出模型误差的空间分布信息,AUC只关注正负样本之间的排序,并不关心正样本内部,或者负样本内部的排序,这样我们也无法衡量样本对于客户的好坏程度的刻画能力;(推荐的好坏)
召回率 & 准确率
- 精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。
- 召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
P-R曲线
F1度量
Precision体现了模型对负样本的区分能力,Precision越高,模型对负样本的区分能力越强;Recall体现了模型对正样本的识别能力,Recall越高,模型对正样本的识别能力越强。F1 score是两者的综合,F1 score越高,说明模型越稳健。
gauc
因为auc反映的是整体样本间的一个排序能力,而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力, 实际更关注的是同一个用户对不同广告间的排序能力,为此,参考了阿里妈妈团队之前有使用的group auc的评价指标 group auc实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序结果不太好比较这一影响。
GAUC(group auc)实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序结果不太好比较这一影响。
auc反映的是整体样本间的一个排序能力,
而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力,
因此实际应该更关注的是同一个用户对不同广告间的排序能力。
AUPRC
mAP
AP衡量的是学出来的模型在给定类别上的好坏,而mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。
假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, …, M/M),对于每个recall值r,我们可以计算出对应(r’ > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。
参考文献:
https://blog.csdn.net/hnu2012/article/details/87892368
模型评估指标AUC(area under the curve)_模型评价指标英文-CSDN博客