Accuracy,Precision, Recall, F-score,以及ROC曲線的總結

正好剛在看書的時候(Social sensing,一個比較新的計算機科學理論,非常有意思)用到這個概念。寫個總結吧。這個在機器學習,數據挖掘,信息檢索里可以說是爛大街的東西。不過倒是很讓很多初學者乃至學了很多年的人頭疼。能把以上幾個概念真正講清楚的人其實不多。不過其實,這玩意的根源,你還要追溯到概率論的貝葉斯定理那裡去。當然了,如果目標只是解決這個問題,並不需要用貝葉斯定理。其實一個小的二維矩陣足夠解決所有問題了。

我們首先來思考這樣一個情景。女性的乳腺癌一直是一個女性殺手。假設物理學家和電子工程師開發出了一種,可以檢測女性乳腺癌的測試方法。我們現在要來分析這種測試方法好不好。那麼很顯然,我們可以得到以下結論:

女性,有兩種:得乳腺癌(C),沒有得乳腺癌(NC)

測試結果,有兩種(假設只有兩種結果,不存在中間解。當然很顯然這並不符合實際情況。在實際情況里我們還需要優化這個問題)。檢測為乳腺癌(P),檢測為沒有乳腺癌(NP)。

結合以上的兩種情況,我們可以得出,一個二維矩陣:

[0] (得乳腺癌,檢測為乳腺癌,C-P) (沒有得乳腺癌,檢測為乳腺癌,N-CP)

[1] (得乳腺癌,檢測為健康,C-NP)(沒有得乳腺癌,檢測為健康,NC-NP)

我們假設所有的參與檢測的女性的總數是N。

顯然,對角線上的數據越多,則這個分類器的性能也就越好。這就引出了,準確率(Accuracy)的定義。(CP+NCNP)/N。那麼這個分類器,很顯然既可以告訴我們什麼情況是真的,什麼情況是假的。但實際上在檢測過程中我們往往很難做到這樣的分類器。一般來說,檢測分類器要麼對正的情況敏感,要麼對負的情況敏感。比如如果用X射線檢測乳腺癌,很容易把某些正常的組織也當成癌細胞(注,隨口說的,因為本人不懂生物,所以沒有任何科學依據,為了數學闡述的方便而已)。那麼這種情況,我們就非常容易把一些沒有得乳腺癌的女性也歸為,得了乳腺癌的女性。比如如果我們用某些化學試劑去檢測,可能有一些乳腺癌的情況是檢測不出來的(同理,本人不懂生物,沒有科學依據,為了數學敘述的方便而已)。那麼這種情況,我們就非常容易把一些得了癌症的女性,沒有檢查出來。這些檢測器,分類器,其實才是我們日常生活中的大多數。

那麼怎麼辦呢?Precision和Recall以及F-score的概念也就應運而生了。一般來說,我們很難做一個既能判斷是對的,也能判斷是錯的的好分類器。我們就只能用這種往往只對negative,或者positive的分類器。他們分別對一邊的情況去進行分析。而F-score,則是這兩樣東西的調和平均值。

那麼什麼是Precision呢:Precision=C-P/(C-P+N-CP)

很顯然,這個數值越大,在所有被檢測為乳腺癌的情況里真正有乳腺癌的比例也就越高。用這個數值做分析很顯然有自己的好處。比如,在一個工業半導體生產線上。我們知道,這種生產線本身出現生產偏差的幾率是非常低的。假如一旦報警停工,很有可能會造成生產線很大的損失。那麼這種情況,我們就應該使用高Precision的分類器來做分析了。因為,我們知道,這種分類器本身Precision極高,一旦報警,生產線本身有故障的概率非常大。但是回到我們剛才的那個乳腺癌的問題里。如果我們也有這種性質的分類器。問題也就來了。我們非常容易」放過「有乳腺癌的情況。那麼在醫療當中這種情況,自然是很可怕的。

自然我們就需要另一個參數,Recall了。Recall=C-P/(C-P+C-NP)

那麼這個是什麼意思呢。在所有得乳腺癌的患者里,真正患有乳腺癌的患者的比例。Recall高的話自然就有自己的好處。非常不容易」漏殺。「當然如果是檢測乳腺癌肯定用高Recall的分類器。畢竟人命可不是開玩笑的。你多跑幾次醫院多花點錢不是啥大事。但是這種高Recall的分類器拿去半導體生產線可就不行了。誰受得了天天報警停工?

還有另外一個參數,F-score。也經常用於參考:那便是,Precision和Recall的調和均值。實際上你可以求出許許多多R和P的均值,比如算術均值,根號均值等等。但是經過長期的實踐,人們發現,用調和均值最容易在這個系統里說明問題。

最後一個在data mining,NLP經常用的東西就是,ROC曲線了。ROC曲線,其實歷史比數據挖掘要長得多。最早,其實是在雷達信號處理問題里使用的。當然近期人們發現這一技術在機器學習里用的相當不錯。ROC說起來其實就是一句話:一個二維平面畫曲線。X,是真陽性樣本。Y是假陽性樣本。你用我們剛才那個二維矩陣就可以計算這些東西了。

這樣有一個最大的好處,那便是我們可以直接通過曲線的形狀,就能看出這個分類器的好壞。一般來說:曲線與X軸形成的那個區域,面積越大,分類器性能也就越好。

推薦閱讀:

My First Machine Learning Study Notes
機器學習面試之偏差方差
Learning Explanatory Rules from Noisy Data 閱讀筆記3
決策樹與隨機森林
[貝葉斯九]之EM演算法

TAG:機器學習 | 數據挖掘 |