當前位置: 首頁>>技術教程>>正文


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/zh-tw/article/3879.html,未經允許,請勿轉載。