多高的AUC才算高?

2021-08-04 19:58:23 字數 4255 閱讀 8406

auc這個指標有兩種解釋方法,一種是傳統的「曲線下面積」解釋,另一種是關於排序能力的解釋。例如0.7的auc,其含義可以大概理解為:給定乙個正樣本和乙個負樣本,在70%的情況下,模型對正樣本的打分高於對負樣本的打分。可以看出在這個解釋下,我們關心的只有正負樣本之間的分數高低,而具體的分值則無關緊要。

我們在各種分享中常常會看到,某大牛的某模型auc達到了0.***,說到此處的大牛臉上一臉的自豪。在崇拜之餘,好奇的你一定想過這樣乙個問題,auc這個東西,究竟多高算是高?0.7或者0.8的auc真的很高嗎?確實,對於auc,我們只知道它是介於0和1之間的,對於乙個問題,auc具體能達到多高,好像我們從來不在乎,一般只是用一些「行業經驗值」來判斷自己模型的auc夠不夠高。但是如果不知道理論上auc能達到多高的話,我們就也無法準確得知當前得到的auc究竟是高是低。就好像同樣是考了90分,在100分滿分的制度下和150分滿分的制度下,含義是完全不同的。所以,今天我們就來做一番探索,看看對於乙個具體問題,auc理論上究竟能達到多高,以及理論上auc最高值的高低和哪些因素有關。

為了便於清晰地討論,我們先明確一下討論的具體概念是什麼。我們在這裡關心的概念是乙個資料集的理論最高auc(以下簡稱max auc)。這個「理論最高」指的是什麼呢?具體來說,指的就是如果我們擁有「上帝視角」,也就是乙個超級nb的分類器——這個分類器知道每條樣本的真實分類概率——在這個資料集上能夠達到的auc。等等,難道擁有了上帝視角之後,auc還不就是1了麼?還真不一定,我們看一下下面這個小例子。

在這個例子中,我們一共有三條樣本,每個樣本有兩個特徵,其中「**分類概率」指的是樣本屬於類別1的概率。這個資料集的具體情況如下:

樣本id

特徵1特徵2

真實標籤

**分類概率11

100.5211

10.531

000請注意最後一列「**分類概率」,這一列指的是我們的「上帝視角分類器」(下面簡為gc:god classifier)給出的分類概率,所謂的gc,其實就是乙個記憶力超群的超級過擬合的分類器。可以看到對於3號樣本,gc正確地給出了0的**概率,但是對於1號和2號樣本,即使是gc也只能給出0.5的分類概率,為什麼呢?原因就是這兩條樣本的特徵取值完全相同,但是標籤不相同,所以gc在這上面犯了「必須犯的錯誤」,所謂必須犯的錯誤,也就是無法避免的錯誤,因為你無法從特徵中無法區分這兩條樣本,基於最大熵原理,給出同等概率是最好的選擇。犯了這個錯誤之後,auc自然也就不可能是完美的1了。

所以我們看到,開了上帝視角也不能隨心所欲地操縱auc,那麼開了上帝視角之後,auc究竟最高能達到多高呢?這就是本文要討論的問題。

上面的討論不但給出了我們要討論的核心概念——max auc,同時也通過乙個例子給出了影響這個概念的主要因素:樣本的不確定性。所謂樣本的不確定性,指的是對於完全相同的樣本,也就是特徵取值完全相同的樣本,其對應的標籤是否存在不確定性,例如上文中的例子,1號樣本和2號樣本對應的特徵取值就完全相同,但是標籤卻不相同,因此就引入了不確定性,而這個不確定性的程度的大小,也就決定了max auc的取值。而如果樣本中沒有任何的不確定性,則每條樣本的標籤就是唯一確定的,我們的gc就可以記住它的標籤,從而給出正確的**。

為了驗證這個猜想,並且量化地檢視不同程度的不確定性對於max auc的影響,我寫了乙個模擬程式來生成一組資料(文末有這份**的github位址),並在這組資料上計算了max auc和樣本不確定性的關係。

實驗的具體方法如下:

對於不同程度的不確定性:

根據該不確定性,生成測試的樣本資料,並使用上帝視角給出**的分類概率。

計算該資料集上的auc。

具體來說,我們用隨機數的方法來模擬不確定性:在生成新樣本時,如果根據該隨機數,來選擇是否使用新的特徵取值,如果使用舊的特徵取值,則再隨機給乙個標籤,具體**如下:

if random.random() > dup_ratio:

feature_id = 1

label = random.randint(0, 1)

其中dup_ratio這個變數用來控制重複生成樣本的機率,也就是不確定性。這裡注意到我們僅使用乙個id來代表乙個特徵(feature_id),這是因為在我們的問題中,我們只關心特徵取值是否相同,而不關心具體的取值,畢竟我們不會訓練乙個具體的分類器,而是在使用「上帝視角」的分類器。所以在這種場景下,只需要乙個id來區分表示不同取值的特徵即可。

在生成了「特徵取值 標籤」的樣本後,我們為每條樣本計算了gc給出的分類概率,方法也很簡單,就是使用最大熵原理給不確定性樣本賦予等概率值。

在這個實驗設定下,越高的樣本重複率(dup_ratio),代表了資料集中越高的不確定性,因為會有越多的特徵相同的樣本擁有不同的label,那麼按照我們的猜想,對應的max auc應該也會越低。那麼這兩者具體的關係如何呢?我們將樣本重複率作為橫軸,max auc作為縱軸,便可得到如下的圖(使用r繪圖所得):

上圖在計算每次max auc的時候(也就是圖上的每乙個點)使用了一萬個資料點。可以看出隨著樣本重複率的公升高,max auc確實在不斷降低,最終降到0.5——auc的最低取值。

上面我們用簡單的實驗揭示了max auc和樣本中不確定性之間的關係,這種樣本中的不確定性,是「上帝視角分類器」也無能為力的,如果從優化問題的角度來看的話,屬於不可優化的部分。說到這裡,統計學中還有另外乙個概念,和「不可優化」這個思想不謀而合,那就是貝葉斯錯誤率(bayes error rate,以下簡稱為ber)。ber的具體定義大家可以去檢視wikipedia或者其他資料,如果用一句話來概括其思想的話,可以這麼說:ber指的是任意乙個分類器在乙個資料集上能取得的最低的錯誤率。而這個錯誤率,則對應著資料中的不可約錯誤(irreducible error),也就是我們剛剛說到的「上帝視角也無法解決的錯誤」,「必須犯的錯誤」。

通過分析ber的定義,我們可以知道,所謂的「不可約錯誤」只會在樣本中出現不確定性的時候發生——這和我們剛剛模擬資料使用的假設是相同的,於是我們使用剛剛的資料計算出不同樣本重複率對應的ber,其影象如下:

可以看出,樣本重複率和ber有著明確的近乎線性的關係(,而我們在上一節中看到樣本重複率和max auc也有著明確的相關性,所以很自然地,max auc和ber之間也存在很強的相關性,如下圖所示:

因為ber是一種錯誤指標,其取值是越低越好,和auc相反,所以我們將ber換算為1-ber,又可得到如下影象:

圖中藍色的線是y=x的直線。其中「貝葉斯正確率」是為了和「貝葉斯錯誤率」相對比而造出來的概念,其取值等於1-ber,統計學中並無此概念。可以看出max auc和ber之間有著強烈的正相關關係。

上面我們通過實驗探索了max auc以及影響它的因素,並探索了它和貝葉斯錯誤率之間的關係,那麼在真實資料中這種關係是否真實存在呢?為了驗證這一點,我從我們工作中用到的兩個資料集中計算了對應的auc和ber,其中auc包括max auc和真實模型給出的真實auc。兩個資料集和模型的表現如下:

資料集/指標

真實auc

max auc

ber資料集1

0.753

0.971

0.033

資料集2

0.744

0.999

0.009

可以看出,在這兩個資料集上來看,max auc和ber確實存在著正相關的關係,但是如果拿著0.033的ber到我們的模擬資料中去找的話,對應的max auc是0.997,並不是實際中的0.971。造成這兩者之間的差異的原因之一,是因為我們在生成模擬資料的生成重複樣本步驟中,使用了等概率來產生0和1兩種標籤,而真實資料中可能並不是這樣,換句話說,這兩份資料在具體的不確定性上並不完全相同,有興趣的同學可以進一步探索不通的不確定性對於兩者關係的影響。

從上面的資料,我們還可以看出一點,那就是max auc和真實模型auc的高低並沒有正相關的關係,這是因為這兩份資料上模型的特徵表達能力各不相同,資料集1上的特徵表現出了對標籤的更好的可區分性。

通過上面簡單的分析,我們可以得到以下一些啟示:

本文從「auc究竟能有多高」這個問題出發,簡單**了auc和貝葉斯錯誤率這兩個概念,以及他們之間的關係,並簡單分析了max auc和真實auc之間的一些關係。

由於時間匆忙和能力所限,本文並沒有給出這兩者之間理論關係的分析,做的實驗也比較簡單,所以充其量只是一塊「磚」,希望可以引出更多的「玉」。本文使用的實驗**可在這裡找到:歡迎有興趣的同學拿去折騰。

怎麼樣才算高併發

一 什麼是高併發 定義 高併發 high concurrency 是使用技術手段使系統可以並行處理很多請求。關鍵指標 響應時間 response time 吞吐量 throughput 每秒查詢率qps query per second 每秒事務處理量tps transaction per seco...

偽原創文章如何寫才算高質量

標題修改方法 數字替換法 比如標題 十大偽原創技巧 你可以進行適當的去除或者新增幾個認為不是偽原創技巧的都可以,或者只寫幾個自己習慣用的,這樣至少可以讓搜尋引擎認為你的標題就是不同的。詞語替換法 顧名思義就是把意思相同或者相近的詞語替換一下,這樣也可以達到換湯不換藥的效果。文字修飾法 如果標題已經很...

對AUC的理解

auc是常見的對二類分類器的評價指標,其大小等於roc曲線下的面積。roc曲線的橫座標為false postive rate fpr 縱座標為true positive rate tpr false postive rate的計算法公式 fp r fp fp t n 其中,fp表示false pos...