性能度量
對學習器的泛化性能進行評估,不僅需要有效可行的實驗估計方法,還需要有衡量模型泛化能力的評價標準,這就是性能度量(performance measure)
性能度量反映了任務需求,在對比不同模型的能力時,使用不同的性能度量往往會導致不同的評判結果;這意味著模型的“好壞”是相對的,什么樣的模型是好的,不僅取決于算法和數據,還決定于任務需求。
在預測任務中,要評估學習器f的性能,就要把學習器預測結果f(x)與真實標記y進行比較。回歸任務最常用的性能度量是“均方誤差”
錯誤率與精度
錯誤率與精度是分類任務中最常用的兩種性能度量,既適用于二分類任務,也適用于多分類任務。
查準率、查全率與F1
以西瓜問題為例,假定瓜農拉來一車西瓜,我們用訓練好的模型對這些西瓜進行判別,顯然,錯誤率衡量了有多少比例的瓜被判別錯誤。但是若我們關心的是“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑了出來”,那么錯誤率顯然不夠用了。類似的,在信息搜索中,我們經常會關心“檢索出的信息中有多少比例是用戶感興趣的”“用戶感興趣的信息中有多少被檢索出來了”
查準率(precision)與“查全率”(recall) 是更為適用于此類需求的性能度量。它們是一對矛盾的度量。一般來說,查準率高時,查全率往往偏低;而查全率高時,查準率往往偏低。通常只有在一些簡單任務中,才可能使查全率和查準率都很高。
對于二分類問題,可將樣例根據其真實類別與學習器預測類別的組合劃分為真正例、假正例、真反例、假反例。我們可根據學習器的預測結果對樣例進行排序,排在前面的是學習器認為“最可能”是正例的樣本,排在最后的則是學習器認為“最不可能”是正例的樣本。按此順序逐個把樣本作為正例進行預測,每次可以計算出當前的查全率、查準率。以查準率為縱軸,查全率為橫軸作圖,就得到查準率-查全率曲線,簡稱“P-R曲線”。P-R圖直觀顯示出學習器在樣本總量上的查全率、查準率。若一個學習器的P-R圖曲線被另一個學習器曲線完全“包住”,則可斷言后者優于前者。如果兩條曲線交叉,則“平衡點”(Break-Even Point,簡稱BEP)可用來度量,它是“查準率=查全率”時的取值,但BEP還是過于簡化了,更常用的是F1度量(F1是基于查準率與查全率的調和平均)。
一些應用中,對查準率與查全率的重視程度有所不同,F1度量的一般形式——Fβ能讓我們表示對二者的不同偏好,當β>1時查全率有更大影響,當β<1是查準率有更大影響。
ROC與AUC
在不同的應用任務中,我們可根據任務需求來采用不同的截斷點將樣本分為兩部分,前一部分判作正例,后一部分判作反例。例如若更重視查準率,可選擇排序中靠前的位置進行截斷;若更重視查全率,可選擇靠后的位置進行截斷。因此,排序本身的質量好壞,體現了綜合考慮學習器在不同任務下的“期望泛化性能”的好壞,或者說,“一般情況下”泛化性能的好壞。ROC曲線則是從這個角度出發來研究學習器泛化性能的有力工具。
ROC全稱是“受試者工作特征”(Receiver Operating Characteristic)曲線。與P-R曲線相似,我們根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作為正例進行預測,每次計算出兩個重要量的值,分別以它們為橫、縱坐標作圖,就得到了ROC曲線。ROC曲線的縱軸是“真正例率”,橫軸是“假正例率”。若一個學習器的ROC曲線被另一個學習器的曲線完全“包住”,則可斷言后者的性能優于前者。若兩個學習器的曲線相交,比較合理的判斷是比較ROC曲線下的面積,即AUC(Area Under ROC Curve)。
代價敏感錯誤率與代價曲線
現實任務中經常會遇到不同類型的錯誤造成的后果不同。為權衡不同類型錯誤所造成的不同損失,可為錯誤賦予“非均等代價”。
前面介紹的一些性能度量大都隱式地假設了均等代價,在非均等代價下,我們所希望的不再是簡單地最小化錯誤次數,而是希望最小化“總體代價”。在非均等代價下,ROC曲線不能直接反映出現學習器的期望總體代價,而“代價曲線”則可達到該目的,代價曲線圖的橫軸是取值為[0,1]的正例概率代價,縱軸是取值為[0,1]的歸一化代價。(規范化(normalization)是將不同變化范圍的值映射到相同的固定范圍中,常見的是[0,1],此時亦稱“歸一化”)