当前位置: 首页>>技术教程>>正文


SQL实现AUC的代码

SQL实现AUC的代码,可用于HIVE等使用SQL处理大数据的场景。注意:这段代码不是原创,而是从其他地方摘录下来记录这里的,但是效果经过验证,方便后续查找使用,感谢原创。


select (ry - 0.5*ny*(ny+1))/(nx*ny) as auc from(
        select sum(if(y=1, r, 0)) as ry,
               sum(y) as ny,
               sum(1-y) as nx from(
                select y,
                       score,
                       row_number() over(order by score asc) as r
                  from some.table
               )t
       )a

其中:y是样本实际Label, score是预测值。

附AUC的定义:
AUC(Area Under Curve)被定义为ROC曲线下的面积。很明显这个面积的数值不会大于1。并且ROC曲线一般都处于y=x这条直线的上方,因此AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

参考资料:https://blog.csdn.net/Joyliness/article/details/79156879

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/3879.html,未经允许,请勿转载。