快速理解分類模型評估指標
一、從混淆矩陣說起
我們以二分類模型來舉例,假設我們要預測使用者在借款之後是否會逾期。
對於我們的預測來說,有逾期/不逾期兩種結果。
對於真實情況,同樣有逾期/不逾期兩種結果。
我們以逾期為正例,以不逾期為反例,將預測結果與真實結果進行列聯交叉,就生成了混淆矩陣:
預測正例 | 預測反例 | |
---|---|---|
實際正例 | TP: True Positive | FN: False Negative |
實際反例 | FP: False Positive | TN: True Negative |
- TP: 真正例,預測為正例,實際也是正例
- FP: 假正例,預測為正例,實際為反例
- FN: 假反例,預測為反例,實際為正例
- TN: 真反例,預測為反例,實際也是反例
需要指出的是,上述這些都是計數,即真正例的個數、假正例的個數等。那麼相對應的,用這些計數除以實際每個分類的總數,就得到了四個比率:
- TPR: True Positive Rate,真正率,被預測為正的正樣本數/實際正樣本數。
- FPR: False Positive Rate,假正率,被預測為正的負樣本數/實際正樣本數。
- FNR: False Negative Rate,假負率,被預測為負的正樣本數/實際負樣本數。
- TNR: True Negative Rate,真負率,被預測為負的負樣本數/實際負樣本數。
對應混淆矩陣的公式如下:
可以發現,這些簡寫均為單詞首字母的組合,這一點可以幫助我們免於死記硬背每個公式,只要從根本上理解了這些指標的含義,就可以自己組裝出來具體的公式。
簡單來說,我們在設計一個分類模型時,希望它能儘可能分類正確,即實際為正例的,我們希望能將它歸類到正例中;實際為反例的,我們希望能將它歸類到反例中。也就是提高上述TP和TN部分的比例。
混淆矩陣是評估一個分類模型效果的基礎,有許多評估指標都是基於分類指標,比如接下來我們提到的準確率、精確率、召回率等。
二、最簡單的準確率
準確率(accuracy)最為簡單,也最容易理解,它就是我們預測正確的比例,也就是上述TP和TN部分佔總體的比例:
與準確率相對的是錯誤率(Error),我們可以簡單地使用來計算,也可以使用混淆矩陣類計算:
準確率存在的一個問題是在不同分類的數量不均衡時的表現不太好。舉個例子來說明這種情況:
A分類有90個,B分類有10個
模型一:在A分類中預測正確81個,在B分類中預測正確0個。 模型二:在A分類中預測正確72個,在B分類中預測正確8個。
我們來計算一下,模型一的準確率為,而模型二的準確率的準確率為,可以看到,模型一的整體準確率為81%,高於模型二的80%,那麼模型一就真的比模型二好嗎?
通過仔細觀察我們可以看到,事實上模型一隻是簡單粗暴地將所有個例都分類到A分類中,就得到了更高的準確率,模型二在分類A和分類B上有著同樣不錯的預測效果,卻在準確率上輸給了模型一。假如說我們決策的目的是判斷使用者是否會產生逾期,而B分類就是會產生逾期的使用者,那麼模型一會給我們帶來難以接受的損失,相對來說,模型二雖然整體準確率低於模型一,但是明顯會幫助我們避開那些劣質使用者,從而保障資本安全。
面對這種準確率失真的情況,我們可以通過計算真正率和真負率的均值來得到平均準確率(Average Per-Class Accuracy):
我們再來看一看上述的例子,計算得到,模型二遠遠優於模型一,在這一案例中,顯然平均準確率更符合我們的設想。
三、最常用的精確率和召回率
精確率(Precision)和準確率一字之差,含義卻完全不同。通俗來說,精確率就是預測的正例中實際為正的比例。
假設有100個人,我們的任務是識別出他們中間的好人。那麼精確率就是在我們預測的好人中,真正的好人所佔的比例。假如我們判斷其中90個是好人,但事實上這90人中只有81人是好人,那麼我們的精確率就是。精確率對應到混淆矩陣就是:
召回率(Recall)則是實際為正的個例中被我們預測為正的比例。仍以上例來說明,假設一共有93個好人,但是我們只預測對了其中81個,那麼我們的召回率就是。召回率對應到混淆矩陣的公式為:
可以看到,召回率是一個與精確率相互補的指標。它們都來自於資訊檢索領域,後來廣泛應用於推薦系統、機器學習模型等效果的評估。
以推薦系統為例來加深理解:我們給使用者推薦了100篇文章,使用者看了其中的50篇,那我們的精確率§就是50%;使用者一共看了200篇文章,其中50篇來自我們的推薦,另外50篇是他自己通過其他途徑閱讀到的,那麼我們的召回率®就是25%。
精確率和召回率哪個更重要呢?這個要視我們分類的目的來決定。比如我們要識別出信貸欺詐使用者或者識別出網上逃犯,那麼顯然召回率更重要,因為這種情況下我們寧肯錯殺三千,絕不放過一個,當然針對這類情況,肯定需要更多後續的手段來保障好人的利益;而當我們要預測股票的漲跌或者要給使用者推薦他喜愛的商品時,顯然精確率更重要。
顯然,幾乎不存在我們只需要關注其中一個指標的情況。精確率和召回率總是相輔相成,在不同的目的下我們為它們賦予不同的權重,從而讓它們更好地為模型評估、對比提供支援。
在這樣的考量下,F1-Score應運而生。
四、綜合性能強大的F1-Score
首先,F1-Score是精確率和召回率的調和平均值。我們知道常用的有算術平均值、幾何平均值、加權平均值,那麼,什麼是調和平均值呢?
調和平均值(Harmonic Mean)就是各個統計量的倒數的算數平均值的倒數。
調和平均值的一個特點是更重視較小值,舉個例子來說明:
假設,則,或。
調和平均值也有簡單調和平均值與加權調和平均值之分。具體到F1-Score來說,如果我們賦予精確率和召回率相同權重,那我們的F1-Score就是精確率和召回率的簡單調和平均值:
對我們來說,精確率和召回率的重要性並不總是等同。假如我們需要為它們賦予不同的權重,我們就需要使用到加權調和平均值。
我們用來表示加權調和平均值,使用分別表示我們賦予a和b的不同的權重,那麼a和b的加權調和平均值為:
現在我們為精確率賦以的權重,為召回率賦以1的權重,那麼我們的就是: