AUC計(jì)算方法與Python實(shí)現(xiàn)代碼
-AUC計(jì)算方法
-AUC的Python實(shí)現(xiàn)方式
AUC計(jì)算方法
AUC是ROC曲線下的面積,它是機(jī)器學(xué)習(xí)用于二分類模型的評(píng)價(jià)指標(biāo),AUC反應(yīng)的是模型對(duì)樣本的排序能力。它的統(tǒng)計(jì)意義是從所有正樣本隨機(jī)抽取一個(gè)正樣本,從所有負(fù)樣本隨機(jī)抽取一個(gè)負(fù)樣本,當(dāng)前score使得正樣本排在負(fù)樣本前面的概率。
AUC的計(jì)算主要以下幾種方法:
1、計(jì)算ROC曲線下的面積。這是比較直接的一種方法,可以近似計(jì)算ROC曲線一個(gè)個(gè)小梯形的面積。幾乎不會(huì)用這種方法
2、從AUC統(tǒng)計(jì)意義去計(jì)算。所有的正負(fù)樣本對(duì)中,正樣本排在負(fù)樣本前面占樣本對(duì)數(shù)的比例,即這個(gè)概率值。
具體的做法就是它也是首先對(duì)prob score從大到小排序,然后令最大prob score對(duì)應(yīng)的sample 的rank為n,第二大score對(duì)應(yīng)sample的rank為n-1,以此類推。
然后把所有的正類樣本的rank相加,再減去M-1種兩個(gè)正樣本組合的情況。
得到的就是所有的樣本中有多少對(duì)正類樣本的score大于負(fù)類樣本的score。
最后再除以M×N。
公式如下:

AUC的Python實(shí)現(xiàn)
通過上面方法二的公式,AUC計(jì)算的Python實(shí)現(xiàn)如下:
def calAUC(prob,labels):
f = list(zip(prob,labels))
rank = [values2 for values1,values2 in sorted(f,key=lambda x:x[0])]
rankList = [i+1 for i in range(len(rank)) if rank[i]==1]
posNum = 0
negNum = 0
for i in range(len(labels)):
if(labels[i]==1):
posNum+=1
else:
negNum+=1
auc = 0
auc = (sum(rankList)- (posNum*(posNum+1))/2)/(posNum*negNum)
print(auc)
return auc
其中輸入prob是得到的概率值,labels是分類的標(biāo)簽(1,-1)
以上這篇AUC計(jì)算方法與Python實(shí)現(xiàn)代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS 7 安裝python3.7.1的方法及注意事項(xiàng)
這篇文章主要介紹了CentOS 7 安裝python3.7.1的方法,文中給大家提到了注意事項(xiàng),需要的朋友可以參考下2018-11-11
Django關(guān)于事務(wù)transaction.atomic()的使用方式
這篇文章主要介紹了Django關(guān)于事務(wù)transaction.atomic()的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
pytorch 實(shí)現(xiàn)張量tensor,圖片,CPU,GPU,數(shù)組等的轉(zhuǎn)換
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)張量tensor,圖片,CPU,GPU,數(shù)組等的轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法示例
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法,結(jié)合實(shí)例形式分析了Python針對(duì)gif格式圖片的爬取、下載等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

