Machine learning 这种计算ROC AUC的方法或公式是如何工作的?
我尝试使用MySQL计算下表中数据的AUC,如下所示:Machine learning 这种计算ROC AUC的方法或公式是如何工作的?,machine-learning,metrics,roc,auc,Machine Learning,Metrics,Roc,Auc,我尝试使用MySQL计算下表中数据的AUC,如下所示: y p 1 0.872637 0 0.130633 0 0.098054 ... ... 1 0.060190 0 0.110938 我遇到了下面的SQL查询,它给出了正确的AUC分数(我使用sklearn方法进行了验证) 我不明白我们是如何使用这种方法计算AUC的有人能给出这背后的直觉吗? 我已经熟悉了梯形法,该方法涉及ROC曲线下小梯形面积的求和。简短回答:这是Wilcoxon-Mann-Whitney统计,请
y p
1 0.872637
0 0.130633
0 0.098054
...
...
1 0.060190
0 0.110938
我遇到了下面的SQL查询,它给出了正确的AUC分数(我使用sklearn方法进行了验证)
我不明白我们是如何使用这种方法计算AUC的有人能给出这背后的直觉吗?
我已经熟悉了梯形法,该方法涉及ROC曲线下小梯形面积的求和。简短回答:这是Wilcoxon-Mann-Whitney统计,请参见 这一页也有证据 公式的底部与wiki中的公式相同。上面的部分比较棘手
p
,t\u 0
和t\u 1
是数据框中的索引。请注意,我们首先按p
排序,这使我们的生活更轻松
注意,双和可以分解为
Sum_{t_1 such that y(t_1)=1} #{t_0 such that p(t_0) < p(t_1) and y(t_0)=0}
现在想象一下向下滚动已排序的数据帧。这是我们第一次遇到y=1,{t\u 0:t\u 0
Sum_{t_1 such that y(t_1)=1} #{t_0 such that p(t_0) < p(t_1) and y(t_0)=0}
#{t_0: p(t_0) < p(t_1) and y(t_0)=1) = t_1 - #{t_0: t_0 <= t_1 and y(t_0)=1}
Sum_{t_1: y(t_1)=1}#{t_0: p(t_0) < p(t_1) and y(t_0)=1) = Sum_{t_1: y(t_1)=1} t_1 - (1 + 2 + 3 + ... + n),
Sum_{t_1: y(t_1)=1} t_1 = Sum_{t_1: y(t_1)=1} t_1 y(t_1)
Sum_{t_1: y(t_1)=1} t_1 = Sum_{t_1: y(t_1)=1} t_1 y(t_1) = Sum_{t} t y(t)
1 + 2+ 3 + ... + n = n(n+1)/2