分類模型的評估(一)
針對分類模型的評估討論,一共有三篇連續的文章。
這是開頭的第一篇,主要討論查准率(Precision)、查全率(Recall)以及F-score。它們是針對二元分類結果常用的評估指標,這篇文章將討論這些指標的含義、設計初衷以及局限性。
第二篇將討論ROC曲線和AUC、第三篇將討論這些評估指標的代碼實現。
一、二元分類問題
在機器學習領域,我們常常會碰到二元分類問題。這是因為在現實中,我們常常面對一些二元選擇,比如在休息時,決定是否一把吃雞遊戲。不僅如此,很多事情的結果也是二元的,比如向妹子表白時,是否被發好人卡。
當然,在實際中還存在一些結果是多元的情況,比如紅、黃、藍三種顏色中,喜歡哪一個,而這些多元情況對應著機器學習里的多元分類問題。對於多元分類問題,在實際的處理過程中常將它們轉換為多個二元分類問題解決,比如圖1所示的例子。
那麼自然地,一個多元分類結果可以分解為多個二元分類結果來進行評估。這就是為什麼我們只討論二元分類結果的評估。為了更加嚴謹的表述,我們使用變數 來表示真實的結果, 表示預測的結果。其中 表示正面的結果(在實際應用中更加關心的類別),比如妹子接受表白,而 表示負面的結果,比如妹子拒絕表白。
二、查准率與查全率
在討論查准查全的數學公式之前,我們先來探討:針對二元分類問題,應該如何正確評估一份預測結果的效果。
沿用上面的數學記號。如圖2所示,圖中標記為1的方塊表示 ,但 的數據;標記為3的凹型方塊表示 ,但 的數據;標記為2的方塊表示 ,且 的數據。而且這些圖形的面積與對應數據的數據量成正比,比如 且 的數據個數越多,標記2的面積越大。
很容易發現,圖中標記為2的部分表示模型預測結果正確,而標記為1和3的部分則表示模型預測結果錯誤。
- 對於一份預測結果,一方面希望它能做到「精確」:當 時,有很大概率,真實值 就等於1。這表現在圖形上,就是標記2的面積很大,而標記3的面積很小。
- 另一方面也希望它能做到「全面」:對於幾乎所有的 ,對應的預測值 也等於1。在圖形上,這表示標記2的面積很大,而標記1的面積很小。
於是,對應地定義查准率(precision)和查全率(recall)這兩個技術指標(有的文獻里,將查准率翻譯為精確率;將查全率翻譯為召回率)來評估一份預測結果的效果。比較直觀的定義如圖2所示。
為了更加嚴謹,下面將從數學的角度給出這兩個指標的嚴格定義。首先將數據按預測值和真實值分為4類,具體見表1。
於是可以得到公式(1):
公式(1)經過進一步的推導,可以得到這兩個技術指標的概率定義,如公式(2)。從概率上來講:預測值等於1時,真實值等於1的概率為查准率;真實值等於1時,預測值等於1的概率為查全率。
理想的情況是這兩個指標都很高,但現實往往是殘酷的。這兩個指標通常存在著此消彼長的現象。比如降低預測表白成功的標準(也就是增加 的數量),往往會提高它的查全率,但同時會降低它的查准率,反之依然。整個過程的直觀圖像如圖3所示。
三、F-score
既然這兩個指標往往是成反比的,而且在很大程度上,受預測標準的控制。那麼只拿其中的某一個指標去評估預測結果是不太合適的。比如在極端情況下,預測所有表白都成功,即 。這時預測的查全率是100%,但查准率肯定很低,而且這樣的預測顯然是沒太大價值的。而兩個指標同時使用,在實際應用時又不太方便。為了破解這個困局,在實踐中,我們定義了新的指標 去「綜合」這兩個指標。具體的定義如公式(3),從數學上來看,它其實是查准率與查全率的調和平均數。對於二元分類問題, 綜合考慮了預測結果的查准率和查全率,是一個比較好的評估指標。
其實從模型的角度來看,查准率與查全率的「相互矛盾」給了我們更多的調整空間。應用場景不同,我們對查准率和查全率的要求是不一樣的。在有的場景中,關注的焦點是查全率。例如對於網上購物的衣服推薦,電商平台關心的是那些對衣服感興趣的客戶,希望模型對這些客戶的預測都正確;而那些對衣服不感興趣的客戶,即使模型結果有較大偏差,也是可以接受的。也就是說,電商平台重視查全率,但不太關心查准率。這時就可以調低模型的預測標準,通過犧牲查准率來保證查全率。但在有的場景中,查准率才是重點。例如在實時競價(RTB)廣告行業,有3種參與者:需要在互聯網上對產品做廣告的商家,比如Nike;廣告投放中介(DSP);廣告位提供者,比如新浪網。Nike將廣告內容委託給廣告投放中介A,A通過分析選定目標客戶群。當目標客戶訪問新浪網時,A向新浪網購買廣告位並將Nike廣告推送給他。如果該客戶點擊了Nike廣告,Nike會向投放中介A支付相應費用。否則,全部費用由中介A承擔。那麼對於廣告投放中介A,它希望投放的每條廣告都會被點擊,但不太關心是否每個對Nike感興趣的客戶都被推送了廣告。換句話說,廣告投放中介更關心查准率。於是可以通過調高模型的預測標準來提高查准率,當然這時會犧牲一部分查全率。
對於這些偏重某一特定指標的場景,可以如公式(4),相應地定義指標 (其實 是 的一個特例)。當 靠近0時, 偏向查准率,而 很大時,則偏向查全率,如圖4所示。
四、總結
查准率、查全率和F-score是最為常用的二元分類結果評估指標。其中查准率和查全率這兩個指標都只側重於預測結果的某一個方面,並不能較全面地評價分類結果。而F-score則是更加「上層」的評估指標,它建立在前面兩個指標的基礎上,綜合地考慮了分類結果的精確性和全面性。
從上面的討論可以看到,這三個指標針對的是某一份給定的分類結果。但對於大多數分類模型,它們往往能產生很多份分類結果,比如對於邏輯回歸,調整預測閾值可以得到不同的分類結果。也就是說,這三個指標並不能「很全面」地評估模型本身的效果,需要引入新的評估指標。這部分內容的討論將在下一篇文章中展開(《分類模型的評估(二)》)。
五、廣告時間
這篇文章的大部分內容參考自我的新書《精通數據科學:從線性回歸到深度學習》,歡迎大家購買。
另外歡迎大家觀看我的公開課,懇請大家批評與指正。
數據科學「內戰」:統計 vs. 機器學習推薦閱讀:
※灣區超級獨角獸們怎麼玩轉數據科學
※一行代碼,Pandas秒變分散式,快速處理TB級數據
※從0開始,Data Scientist之路 Day 4
※是什麼驅動了Python近些年強力的增長?來自Stack Overflow的分析
※如何用Python爬數據?(一)網頁抓取