zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

复盘:auc是怎么计算的?auc怎么快速计算?

计算 快速 怎么 复盘 AUC
2023-09-11 14:15:38 时间

复盘:auc是怎么计算的?auc怎么快速计算?

提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性

关于互联网大厂的笔试面试,都是需要细心准备的
(1)自己的科研经历,科研内容,学习的相关领域知识,要熟悉熟透了
(2)自己的实习经历,做了什么内容,学习的领域知识,要熟悉熟透了
(3)除了科研,实习之外,平时自己关注的前沿知识,也不要落下,仔细了解,面试官很在乎你是否喜欢追进新科技,跟进创新概念和技术
(4)准备数据结构与算法,有笔试的大厂,第一关就是手撕代码做算法题
面试中,实际上,你准备数据结构与算法时以备不时之需,有足够的信心面对面试官可能问的算法题,很多情况下你的科研经历和实习经历足够跟面试官聊了,就不需要考你算法了。但很多大厂就会面试问你算法题,因此不论为了笔试面试,数据结构与算法必须熟悉熟透了
秋招提前批好多大厂不考笔试,直接面试,能否免笔试去面试,那就看你简历实力有多强了。


面试官:auc是怎么计算的?auc怎么快速计算?

这是互联网大厂经常考的知识点:

auc是roc下面的面积

但是你懂的,一个弯曲的曲线,没法算面积

所以呢,实际上物理上,有人想出了一个计算auc的好办法来

首先明确:auc物理意义:是正样本被排在负样本前面的概率有多大,这就是auc的含义

既然涉及到排名,那很简单了,咱们就用样本最后的排序rank来算,这是推荐系统中NDCG的重要想法
也是spearman相关系数的计算方法

roc曲线计算auc–>公式计算auc

在这里插入图片描述
任意给一个正类样本和一个负类样本,
auc即正类样本的score大于负类样本的score的概率

公式如下
在这里插入图片描述

其中,M 是正样本的个数,N是副样本的个数

在这里插入图片描述
分母分子啥意思呢?

分母是正样本排列的数量C(M,M)=M
×负样本排列可能的数量,就C(N,N)=N

这么多排列的情况下,分子自然就是正样本能排在前面的可能性(遮雨auc就是概率)

如果正样本都排在前面
样本y1和y2的序号和是5+4=9
【真的有5种组合吗?】

那么其实组合数量是多少呢?

y1和后面三个负样本,三种组合而已,因此5其实算多了2
y2和后面三个负样本,三种组合而已,因此4其实算多了1
所以要把1和2减掉
那就是分子右边那个表达式,就是把原始的序号减掉

懂了吧?

再来解释:
在这里插入图片描述

采样会影响auc吗?

直接给出答案,不会的

这种情况下要用roc曲线下的面积来解释采样对auc没有影响

几个指标:

TPR: TP/(TP+FN)
FPR: FP/(FP+TN)
recall: TP/(TP+FN)
precision: TP/(TP+FP)
accuracy: (TP+TN)/(TP+FP+FN+TN)

会受采样影响的指标accuracy,precision

对于precision: TP/(TP+FP),假如对负样本进行了下采样,TP不会变,FP会变(因为负样本减少了),所以采样对precision有影响

对于影响auc两个引子TPR, FPR

TPR: TP/(TP+FN),TP, FN都来源于实际样本的正标签,如果是下采样,其值自然不变,
如果是真样本随机采样,TP, FN也是同等变化,其比例不会变

FPR: FP/(FP+TN) 都是来源于实际样本的负标签,采样的话,比例不会变

假如负样本变为原来的1/2,由于是随机采样,FP, TN也是变为原来的1/2,
所以 FP/(FP+TN) = 0.5FP/(0.5FP+0.5*TN),其比值不变

下面是论文的解释
在这里插入图片描述
论文作者进行了实验
在这里插入图片描述
图a 样本1:1,图c 样本1:10,其roc曲线不变,所以auc不变

但是图b,d的precision-recall曲线就变了。

作者给出的方法是,
只要指标计算是在同一行或同一列,其值就不会变,
要是跨行或跨列,其值就会变,像accuracy

手撕auc计算公式的代码,有了公式,还怕吗?


总结

提示:重要经验:

1)auc的物理含义是正样本排在负样本前面的概率,公式自然就是排列组合了,分子正样本的排序和-多出来的部分
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。