1 roc曲線計算auc
我們都知道auc是roc曲線下的面積,但這種計算不方便
2 公式計算auc
有另外一種計算方法:
任意給一個正類樣本和一個負類樣本,正類樣本的score大於負類樣本的score的概率
公式如下
M 是正樣本的個數,N是副樣本的個數
值得是第i個樣本的序號。對所有的預測樣本的score進行從小到大的排序,然後從1進行標號。
原始樣本 | |||||
模型打分 | 0.8 | 0.5 | 0.6 | 0.3 | 0.4 |
按分數排序 | |||||
分數 | 0.8 | 0.6 | 0.5 | 0.4 | 0.3 |
排序rank | 5 | 4 | 3 | 2 | 1 |
對於公式的分母:正樣本排在負樣本的情況,一共有M*N種
分子的左邊一項,是正樣本的序號之和
對於分子右邊一項 ,M是正樣本的個數,這個公式也是首項爲1,末項爲M, 公差爲1的等差數列的求和公式,它的序列爲
1, 2, 3, 。。。M
討論一下這個序列是怎麼來的?
用一種特殊的情況來說明
假設模型是完美的,正樣本都排在前面,負樣本都排在後面
那麼此時的auc應該爲1
原始樣本 | |||||
模型打分 | 0.9 | 0.8 | 0.5 | 0.4 | 0.3 |
序號 | 5 | 4 | 3 | 2 | 1 |
對於分母,正樣本排在負樣本是2*3=6,那麼對於這種特殊情況,分子也應該爲6
對於分子左邊,兩個正樣本的序號5 + 4 = 9,明顯大於6,那麼多出來的3,是怎麼計算的?
- 對於正樣本,後面有三個負樣本,正樣本大於負樣本的組合有3種情況(y2, y3), (y2, y4),(y2,y5),應該是3;但是如果是按序號算的話,是4,也就是說比3多了1個
- 同樣,對於正樣本,正樣本大於負樣本的組合有3種情況(y1, y3), (y1, y4),(y1,y5),應該是3;但是如果是按序號算的話,是5,也就是說比3多了2個
- 這樣多出的情況就是一個序列 1, 2
- 這個序列的最大值,就是正樣本的個數M
- 對於這個序列的求解就是用等差數列的求和公式,也就是分子的右邊一項
- 因爲是多出的,所以用了減號
按照這種思路,就是解釋了分子,當然這是一種特殊情況的解釋,這種情況比較容易理解。
3 採樣會影響auc嗎?
直接給出答案,不會的
這種情況下要用roc曲線下的面積來解釋採樣對auc沒有影響
幾個指標:
- TPR: TP/(TP+FN)
- FPR: FP/(FP+TN)
- recall: TP/(TP+FN)
- precision: TP/(TP+FP)
- accuracy: (TP+TN)/(TP+FP+FN+TN)
會受採樣影響的指標accuracy,precision
對於precision: TP/(TP+FP),假如對負樣本進行了下采樣,TP不會變,FP會變(因爲負樣本減少了),所以採樣對precision有影響
對於影響auc兩個引子TPR, FPR
TPR: TP/(TP+FN),TP, FN都來源於實際樣本的正標籤,如果是下采樣,其值自然不變,如果是真樣本隨機採樣,TP, FN也是同等變化,其比例不會變
FPR: FP/(FP+TN) 都是來源於實際樣本的負標籤,採樣的話,比例不會變
假如負樣本變爲原來的1/2,由於是隨機採樣,FP, TN也是變爲原來的1/2,所以 FP/(FP+TN) = 0.5*FP/(0.5*FP+0.5*TN),其比值不變
下面是論文的解釋
論文作者進行了實驗
圖a 樣本1:1,圖c 樣本1:10,其roc曲線不變,所以auc不變
但是圖b,d的precision-recall曲線就變了。
作者給出的方法是,只要指標計算是在同一行或同一列,其值就不會變,要是跨行或跨列,其值就會變,像accuracy