前言
前文中我們瞭解了幾種機器學習中模型評估的方法,但在實際應用中對學習器的泛化性能進行評估,不僅僅需要有效可行的實驗估計方法,還需要有衡量模型泛化能力的評估標準,這就是本文中要了解的性能度量。
概念引入
性能度量反映了任務需求,在對比不同模型的能力時,使用不同的性能度量往往會導致不同的結果。在預測任務中,給定樣例集D={},其中是示例的真實標記,要評估學習器的性能,就要把學習器與真實標記進行比較.
迴歸任務最常用的性能度量是“均方差”,即
對於數據分佈D和概率密度函數p(·),均方差可描述爲
以上是迴歸任務中的性能度量,那麼我們再來看看分類任務中的性能度量
分類中的性能度量
其中錯誤率和精度是分類任務中最常用的兩種性能度量,既適用於二分類任務,也適用於多分類任務。
錯誤率與精度
對樣例集D,分類錯誤率定義爲
精度則定義爲
對數據分佈D和概率密度函數p(·),錯誤率和精度可分別描述爲
查準率與查全率
錯誤率和精度雖然常用,但並不能滿足所有任務需求,例如在搜索業務中,錯誤率衡量了有多少信息被錯誤判斷導致推送給了用戶或者沒有推送給用戶,這並不是我們關心的,我們更關心在檢索出來的信息裏有多少是用戶感興趣的,或者說用戶感興趣的信息有多少被檢索出來了,這就是查準率和查全率。
對於二分類的問題,可以把樣例根據真實類別和學習器預測的類別組合劃分爲真正例,假正例,真反例,假反例四種情形,令TP、FP、TN、FN分別爲其對應的樣例數,則有TP+FP+TN+FN=樣例總數,分類的結果可以用一個混淆矩陣表示如下圖
查準率P和查全率R分別定義爲
查準率和查全率一般是相互矛盾的,如果希望查出來的結果越精確越好,那沒有把握的結果就會被丟棄,查全率自然就低,如果希望儘可能把所有正例都查出來,自然要把所有不確定的一起算上,查準率就低了,通常只有在一些很簡單的任務裏,查準率和查全率纔可能會都很高。
在很多情況下,我們可以根據學習器的預測結果對樣例排序,排在前面的是學習器認爲“最可能”是正例的樣本,排在最後的是學習器認爲“最不可能”是正例的樣本,按這個順序把樣本逐個排序每次計算當前查準率查全率,以查準率爲縱軸,查全率爲橫軸作圖,可以得到查準率-查全率曲線,簡稱PR曲線,顯示該曲線的圖稱爲PR圖。
PR圖
PR圖能夠直觀地顯示學習器在樣本上的查全率、查準率,在進行比較時如果,一個學習器的PR曲線被另一個學習器的PR曲線完全包住,那麼可以斷言後者優於前者,然而大部分情況下,是無法一般性的斷言哪一個優於另一個的,此時如果我們希望將兩個學習器比出一個高低,那麼可以用PR曲線下面積的大小作爲判斷依據,它能一定程度上反映學習器在查準率和查全率上取得雙高的比例,但這個值不太容易估算,所以人們設計了一些綜合考慮查準率、查全率的指標。
平衡點(BEP)就是這樣一個度量,它是“查準率等於查全率時的取值。若BEP更高,則學習器更優。
F1與Fβ
但BEP還是過於簡化了,更常用的是F1度量,F1是基於查準率和查全率的調和平均值,它定義爲
在不同類型的應用中,我們對查準率和查全率的重視程度不一樣,針對不同的重視程度,一般用加權調和平均值來度量。它定義爲
其中β>0度量了查全率對查準率的相對重要性,β=1時退化爲標準的F1;β>1時查全率有更大影響,β<1時查準率有更大影響。
在很多情況下我們有多個二分類混淆矩陣,例如多次訓練,每次產生一個混淆矩陣,或是在多個數據集上進行訓練/測試,希望估算全局性能,這個時候就需要在n個二分類混淆矩陣上綜合考察查準率和查全率。有兩種常用的做法,一種是先在各個混淆矩陣中計算出查準率,查全率和F1,再計算它們分別的平均值,這就得到了宏查準率,宏查全率和宏F1。也可以先計算各矩陣中各元素TP、FP、TN、FN的平均值,再用它們去計算查準率,查全率和F1,此時得到的是微查準率,微查全率和微F1。
ROC與AUC
與PR曲線類似,還有一個曲線也被用來衡量學習器在不同任務下泛化期望的好壞,也就是ROC曲線,與PR曲線不同的是,ROC曲線使用的是另外兩個重要指標,真正例率TPR和假正例率FPR作爲縱軸和橫軸的圖像,兩者分別定義爲
若一個學習器的ROC曲線被另一個學習器的ROC曲線完全包住,則可以斷言後者性能優於前者,若發生交叉,則不能一般性斷言,可以通過ROC曲線的面積,也就是AUC來判斷。
代價敏感錯誤率與代價曲線
前面的性能度量中,大多數都默認了一個前提條件代價是均等的,並沒有考慮到不同錯誤會導致不同的後果。在現實生活中不同類型的錯誤所造成的的後果往往是不同的,爲了權衡不同類型錯誤所造成的的不同損失,可以爲錯誤賦予“非均等代價”。
以二分任務爲例,可以根據任務的領域知識建立一個“代價矩陣”,其中表示把第i類樣本預測爲j類的代價,一般來說=0;如果將第0類預測爲第1類損失更大,則>,損失越大,與相差越大,兩者的絕對值不重要,比值更重要。100:10和10:1的意義是一樣的。
在非均等代價下,我們希望的不再是簡單的最小化錯誤數,而是希望最小化總體代價。
此時計算錯誤率爲
類似的,在非均等代價下,ROC曲線同樣不能直接反映學習器的期望總體代價,而“代價曲線”可以。代價曲線的橫軸是取值爲[0,1]的正例概率代價
其中p是樣例爲正例的概率;縱軸是取值爲[0,1]的歸一化代價
其中FPR是假正例率,FNR是假反例率,ROC曲線上的每一點對應了代價平面上的一條線段,設ROC線上點的座標爲(FPR,TPR),則可以計算出FNR,然後在代價平面上繪製一條從(0,FPR)到(1,FNR)的線段,線段下方的面積即表示該條件下的期望總體代價。依次將ROC曲線上每個點都轉化爲代價平面上的一條線段,然後所有線段圍成的下界,就是在所有條件下學習器的期望總體代價。