形象理解AUC計算公式

2021-08-29 10:26:30 字數 2044 閱讀 3304

auc是評價乙個二分類器效能的主流數值指標,定義為roc曲線下方的面積,但這個算起來比較複雜,需要統計假陽性。另乙個定義更直觀,隨機給乙個正樣本和乙個負樣本,多大概率正樣本的score更高。

換一種說法,假設正樣本有m

mm個,負樣本有n

nn個,在所有m∗n

m*nm∗

n個正負樣本對中,有多少正樣本比負樣本分高。提高auc意味著,將所有樣本按score排序,正樣本要盡量排在負樣本前面。各大部落格貼出的auc計算公式為

a uc

=∑正樣

本ran

ki

−0.5∗(

m+1)

∗mm∗

nauc=\frac - 0.5 * (m+1) * m}

auc=m∗

n∑正樣

本​ra

nki​

−0.5

∗(m+

1)∗m

​下面給不能一眼看懂這個公式的童鞋(比如當年的我)舉幾個例子,希望能有幫助。

假設我們5個樣本,其中2個正樣本,3個負樣本,按分類器輸出的score排序,分最高的rank為5,次之為4。

如果這個分類器很完美,應該是下面的結果,所有的正樣本都排在負樣本之前auc

=6/6

=1

auc =6 /6 = 1

auc=6/

6=1

rank54

321正負性++

---如果稍差一點,6個正負樣本[(5, 4), (5, 2), (5, 1), (3, 4), (3, 2), (3, 1)]對中只有(3, 4)正樣本沒排在負樣本之前,auc

=5/6

auc=5/6

auc=5/

6 rank54

321正負性+-

+--再看,這次[(5, 4), (5, 3), (5, 1), (2, 4), (2, 3), (2, 1)] 裡有2個正樣本沒排在負樣本之前,auc

=4/6

auc = 4/6

auc=4/

6 rank54

321正負性+-

-+-上面的窮舉法時間複雜度為o(n

2)

o(n^2)

o(n2

), 其實可以考慮,對每個正樣本來說,它能貢獻分子中的幾項,比如上面的例子,右邊有幾個樣本可以用動態規劃從右往左掃一遍得出,貢獻幾項可以這樣得出:e.g. rank為r

rr的正樣本比它後面r−1

r-1r−

1個樣本排得前,扣除它右邊的正樣本數即可,複雜度o(n

)o(n)

o(n)

。rank54

321正負性+-

-+-右邊有幾個正樣本11

100貢獻幾項

5-1-1=300

2-1=1

0由上可知,auc

aucau

c的分子計算需要對正樣本的rank值求和,減正樣本數,再扣除每個正樣本右邊正樣本的數量之和,聰明的你一定發現了,既然有m

mm個正樣本,右邊正樣本數量之和一定為(m−

1)+.

..+2

+1

(m-1) + ... + 2 + 1

(m−1)+

...+

2+1,那麼分子就是

∑ i=

1mra

nk正樣

本i−m

−[(m

−1)+

...+

2+1]

=∑i=

1mra

nk正樣

本i−m

(m+1

)2

\sum_^} - m - [(m-1) + ... + 2 + 1] = \sum_^} - \frac

i=1∑m​

rank

正樣本i

​−m−

[(m−

1)+.

..+2

+1]=

i=1∑

m​ra

nk正樣

本i​−

2m(m

+1)​

(完)

auc計算公式的理解

對於auc的計算參考 m是正樣本的個數,n是負樣本的個數 如何理解分子,下面是我個人的理解。總體原則 負樣本數 樣本總數 正樣本數,然後構造樣本總數 每次取概率不同的正樣本,其排序也不一樣,構造樣本總數的表達方式也不一樣 rank1,樣本總數為rank1 rank2 再加1個就是樣本總數,為rank...

auc計算公式 AUC與logloss

在ctr預估中,auc area under curve 用於衡量排序能力,auc值為roc曲線下的面積,是乙個概率值,越大越好。簡單來說這個指標的含義其實就是隨機抽出一對樣本 乙個正樣本,乙個負樣本 然後用訓練得到的分類器來對這兩個樣本進行 得到正樣本的概率大於負樣本概率的概率。auc是乙個二分類...

機器學習評價指標AUC計算公式

auc are under curve 是乙個模型的評價指標,用於分類任務。那麼這個指標代表什麼呢?這個指標想表達的含義,簡單來說其實就是隨機抽出一對樣本 乙個正樣本,乙個負樣本 然後用訓練得到的分類器來對這兩個樣本進行 得到正樣本的概率大於負樣本概率的概率。在有m個正樣本,n個負樣本的資料集裡。一...