日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AUC的计算方法

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AUC的计算方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘要:

在機(jī)器學(xué)習(xí)的分類任務(wù)中,我們常用許多的指標(biāo),諸如召回率(Recall)、準(zhǔn)確率(Precision)、F1值、AUC等。 那么,如果手動(dòng)計(jì)算AUC應(yīng)該要怎么計(jì)算呢?相信大家很多時(shí)候都是用寫好的庫(kù)直接計(jì)算,可能對(duì)AUC計(jì)算不太了解,下面這篇文章就簡(jiǎn)單的概述一下AUC的計(jì)算方法。 (注:本文的重點(diǎn)其實(shí)不在于闡述什么是AUC。因?yàn)榫W(wǎng)上關(guān)于這方面的文章實(shí)在太多了。但是對(duì)于AUC的計(jì)算的文章相對(duì)來(lái)說(shuō)少一些)

1.什么是AUC?

相信這個(gè)問(wèn)題很多玩家都已經(jīng)明白了,簡(jiǎn)單的概括一下,AUC(are under curve)是一個(gè)模型的評(píng)價(jià)指標(biāo),用于分類任務(wù)。 那么這個(gè)指標(biāo)代表什么呢?這個(gè)指標(biāo)想表達(dá)的含義,簡(jiǎn)單來(lái)說(shuō)其實(shí)就是隨機(jī)抽出一對(duì)樣本(一個(gè)正樣本,一個(gè)負(fù)樣本),然后用訓(xùn)練得到的分類器來(lái)對(duì)這兩個(gè)樣本進(jìn)行預(yù)測(cè),預(yù)測(cè)得到正樣本的概率大于負(fù)樣本概率的概率。


具體關(guān)于AUC含義的分析推薦以下回答:
AUC如何理解?

2.如何計(jì)算AUC?

計(jì)算AUC時(shí),推薦2個(gè)方法。 方法一: 在有M個(gè)正樣本,N個(gè)負(fù)樣本的數(shù)據(jù)集里。一共有M*N對(duì)樣本(一對(duì)樣本即,一個(gè)正樣本與一個(gè)負(fù)樣本)。統(tǒng)計(jì)這M*N對(duì)樣本里,正樣本的預(yù)測(cè)概率大于負(fù)樣本的預(yù)測(cè)概率的個(gè)數(shù)。 ,其中,


這樣說(shuō)可能有點(diǎn)抽象,我舉一個(gè)例子便能夠明白。

ID label pro
A 0 0.1
B 0 0.4
C 1 0.35
D 1 0.8
假設(shè)有4條樣本。2個(gè)正樣本,2個(gè)負(fù)樣本,那么M*N=4。即總共有4個(gè)樣本對(duì)。分別是: (D,B),(D,A),(C,B),(C,A)。 在(D,B)樣本對(duì)中,正樣本D預(yù)測(cè)的概率大于負(fù)樣本B預(yù)測(cè)的概率(也就是D的得分比B高),記為1 同理,對(duì)于(C,B)。正樣本C預(yù)測(cè)的概率小于負(fù)樣本C預(yù)測(cè)的概率,記為0. 最后可以算得,總共有3個(gè)符合正樣本得分高于負(fù)樣本得分,故最后的AUC為
在這個(gè)案例里,沒(méi)有出現(xiàn)得分一致的情況,假如出現(xiàn)得分一致的時(shí)候,例如:
ID label pro
A 0 0.1
B 0 0.4
C 1 0.4
D 1 0.8

同樣本是4個(gè)樣本對(duì),對(duì)于樣本對(duì)(C,B)其I值為0.5。 最后的AUC為



方法二: 另外一個(gè)方法就是利用下面的公式:

這個(gè)公式看起來(lái)有點(diǎn)嚇人,首先解釋一下每一個(gè)符號(hào)的意思: 公式的含義見(jiàn):公式解釋
,代表第i條樣本的序號(hào)。(概率得分從小到大排,排在第rank個(gè)位置)
分別是正樣本的個(gè)數(shù)和負(fù)樣本的個(gè)數(shù)
只把正樣本的序號(hào)加起來(lái)。

同樣本地,我們用上面的例子。
ID label pro
A 0 0.1
B 0 0.4
C 1 0.35
D 1 0.8
?將這個(gè)例子排序。按概率排序后得到:
ID label pro rank
A 0 0.1 1
C 1 0.35 2
B 0 0.4 3
D 1 0.8 4

按照上面的公式,只把正樣本的序號(hào)加起來(lái)也就是只把樣本C,D的rank值加起來(lái)后減去一個(gè)常數(shù)項(xiàng)

即:,這個(gè)答案和我們上面所計(jì)算的是一樣的。
這個(gè)時(shí)候,我們有個(gè)問(wèn)題,假如出現(xiàn)得分一致的情況怎么辦?下面舉一個(gè)例子說(shuō)明:

ID label pro
A 1 0.8
B 1 0.7
C 0 0.5
D 0 0.5
E 1 0.5
F 1 0.5
G 0 0.3

在這個(gè)例子中,我們有4個(gè)取值概率為0.5,而且既有正樣本也有負(fù)樣本的情況。計(jì)算的時(shí)候,其實(shí)原則就是相等得分的rank取平均值。具體來(lái)說(shuō)如下: 先排序:
ID label pro rank
G 0 0.3 1
F 1 0.5 2
E 1 0.5 3
D 0 0.5 4
C 0 0.5 5
B 1 0.7 6
A 1 0.8 7

這里需要注意的是:相等概率得分的樣本,無(wú)論正負(fù),誰(shuí)在前,誰(shuí)在后無(wú)所謂。
由于只考慮正樣本的rank值: 對(duì)于正樣本A,其rank值為7 對(duì)于正樣本B,其rank值為6
對(duì)于正樣本E,其rank值為(5+4+3+2)/4 對(duì)于正樣本F,其rank值為(5+4+3+2)/4
最后我們得到:


3.最后的最后,如何用程序驗(yàn)證?

為了方便,我們使用sk-learn里面自帶的庫(kù)來(lái)簡(jiǎn)單的驗(yàn)證一下我們的例子。

其python的代碼
import numpy as np from sklearn.metrics import roc_auc_score y_true = np.array([1,1,0,0,1,1,0]) y_scores = np.array([0.8,0.7,0.5,0.5,0.5,0.5,0.3]) print "y_true is ",y_true print "y_scores is ",y_scores print "AUC is",roc_auc_score(y_true, y_scores)y_true = np.array([0, 0, 1, 1]) y_scores = np.array([0.1, 0.4, 0.35, 0.8]) print "y_true is ",y_true print "y_scores is ",y_scores print "AUC is ",roc_auc_score(y_true, y_scores)


總結(jié)

以上是生活随笔為你收集整理的AUC的计算方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。