衡量模型泛化能力的評價標准,就是性能度量(performance measure)。
(1)錯誤率與精度
(2)查准率、查全率與F1
基於樣例真實類別,可將學習器預測類別的組合划分為真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative),TP、FP、TN、FN分別表示其對應的樣例數,則有TP+FP+TN+FN=樣例總數。
查准率P與查全率R分別定義為:
P= TP/(TP+FP)=>正例結果中真正例數/正例結果總數
R= TP/(TP+FN)=>正例結果中真正例數/結果中所有真正例數
查准率高時,查全率往往偏低,查全率高時,查准率往往偏低(例如選西瓜例子,希望查全率高則應盡可能將所有瓜都選上,但這樣查准率必然更低,若希望查准率高則應盡可能挑最有把握的瓜,但這樣必然會漏掉一些好瓜,使查全率低)。通常只有在一些簡單任務中,才可能使查全率和查准率都很高。
通常按學習器預測結果為正例可能的大小對樣例排序,即排在前面的是學習器認變“最可能”是正例的樣本,排在最后的則是學習器認為“最不可能”的正例樣本。從上到下逐個把樣本作為正例進行預測,每次均計算出當前的查全率、查准率,以查准率為縱軸、查全率為橫軸作圖,得到查准率-查全率曲線P-R曲線,簡稱P-R圖。
若一個學習器的P-R曲線被另一個學習器曲線完全包住,可斷言后者性能優於前者。對於兩曲線交叉的情況,人們設計了一些綜合考慮查准率、查全率的性能度量。“平衡點”(Break-Event Point,簡稱BEP)就是這樣一個度量,它是查准率=查全率的取值,考慮BEP過於簡化了,更常用的是F1度量:
F1=2×P×R/(P+R)=2×TP/(樣例總數+TP-TN)
真實應用中,對查准率和查全率的重視程度有所不同,例如商品推薦系統更強調查准率,而逃犯檢索中,更希望少漏掉逃犯,查全率更重要。F1度量的一般形式——Fβ,能表達出對查准率/查全率的不同偏好:
Fβ=(1+β2)×P×R/((β2×P)+R)
β>0度量了查全率對查准率的相對重要性,β=1時退化為標准的F1,β>1時查全率有更大影響,β<1時查准率有更大影響。
當希望在n個二分類混淆矩陣上綜合才考察查准率和查全率時,一種做法:先計算出各混淆矩陣的查准率和查全率,記為(P1,R1),(P2,R2),…,(Pn,Rn),再計算平均值,得到“宏查准率”(macro-P)、“宏查全率”(macro-R),以及相應的“宏F1”(macro-F1):
還可將各混淆矩陣的對應元素平均,再得到TP、FP、TN、FN的平均值,再基於這些值計算出“微查准率”(micro-P)、“微查全率”(micro-R)和“微F1”(micro-F1):
(3) ROC和AUC
將針對測試樣本的實值或概率預測,將預測值與閾值比較,大於閾值分為正類,否則為反類,根據這個實值或概率預測結果,可將測試樣本排序,最可能的正例排在最前面,最不可能的正例排在最后面,分類過程相當於在排序中以某個“截斷點(cut point)將樣本分為兩部分,前一部分作為正例,后一部分則判作反例。根據不同任務來選擇截斷點,排序本身的質量好壞,體現了綜合考慮學習器在不同任務下的”期望泛化性能“的好壞。ROC曲線則是從這個角度出發來研究學習器泛化性能的有力工具。
ROC(受試者工作特征,Receiver Operating Characteristic),與P-R曲線創建方式相似,根據預測結果的排序,逐個把樣本作為正例進行預測,每次計算出“真正例率”(True Positive Rate,TPR),和“假正例率”(False Positive Rate,簡稱FPR),分別作為橫軸和縱軸。
TPR=TP/(TP+FN) =>正例結果中真正例/所有結果中真正例
FPR=FP/(TN+FP) =>正例結果中假正例/所有結果中真負例
從ROC圖中,可見點(0,1)對應於將所有正例排在所有反例之前的“理想模型”,對角線對應於“隨機猜測”模型。繪圖過程:給定m+個正例和m-個反例(二者數目不一定一樣),根據預測結果對樣例排序,先把分類閾值設為最大,即所有樣例預測為反例,此時真正例率和假正例率均為0,在坐標(0,0)處標記一個點,然后,將分類閾值依次設為每個樣例的預測值,即從上至下依次逐個將樣例划入正例范圍。設前一個標記點坐標為(x,y),當前若為真正例,則對應標記點的坐標為(x,y+1/m+);當前若為假正例,則對應標記點的坐標為(x+1/m-,y),然后連接所有相鄰點即可。
比較學習器時:若一個學習器的ROC曲線被另一個學習器曲線完全“包住”,則后者性能優於前者;若兩學習曲線交叉,判據是ROC曲線下的面積即AUC。AUC可通過ROC曲線下各部分面積求和而得,假定ROC曲線由坐標點{(x1,y1),(x2,yx),…,(xm,ym)}按序連接形成,且(x1=0,xm=1),則AUC估算為:
形式上,AUC考慮的是樣本預測的排序質量,它與排序誤差有緊密聯系。給定m+個正例和m-個反例,令D+和D-分別表示正反例集合,排序“損失”定義為:
即考慮任一一對正反例,若正例預測值小於反例,則記1個“罰分”,若相等,則記0.5個“罰分”。AUC=1-該值。
(4)代價敏感錯誤率與代價曲線
為權衡不同類型錯誤所造成的不同損失,可為錯誤賦予“非均等代價”(unequal cost)。例如:
在非均等代價下,希望的不再是簡單地最小化錯誤次數,而是希望最小化“總體代價”(total cost)。表2的二分類問題,其“代價敏感”錯誤率為:
還可給出基於分布定義的代價敏感錯誤率,及其他一些性能度量如精度的代價敏感版本,若令costij中的i、j取值不限於0、1,則可定義出多分類任務的代價敏感性能度量。“代價曲線”(cost curve),橫軸是取值為[0,1]的正例概率代價:
其中p是樣例為正例的概率,縱軸是取值為[0,1]的歸一化代價:
其中FPR是假正例率,FNR=1-TPR是假反例率。
代價曲線的繪制:具體參見P36.
(4)比較檢驗
學習性能比較時存在的問題:首先,比較的是泛化性能而非測試集性能,其次,與測試集的選擇相關,第三,學習算法本身的隨機性。
統計假設檢驗(hypothesis test)為學習器性能比較提供了依據。若在測試集上觀察到學習器A比B好,則A的泛化性能是否在統計意義上優於B,以及此結論把握有多大。
①假設檢驗
假設是對學習器泛化錯誤率分布的某種判斷或猜想,例如є=є0。現實任務中只能獲知測試錯誤率є(^),泛化錯誤率與測試錯誤率未必相同,但二者接近的可能性較大,相關很大的可能性較小,因此,可根據測試錯誤率估推出泛化錯誤率的分布。
對於泛化錯誤率為є的學習器,將其中m’個樣本誤分類、其樣本正確分類的概率是є m’(1- є)m-m’,由此可算出恰好將є(^)×m個樣本誤分類的概率如下所示(也即表示泛化錯誤率為є的學習器被測得錯誤率為є(^)的概率):
上式對є對偏導,可知其概率在є=є(^)時最大,|є-є(^)|增大時P減小。這個概率符合二項分布。
可使用“二項檢驗”(binomial test)對є≤0.3(即泛化錯誤率是否不大於0.3)這樣的假設進行檢驗,更一般地,考慮假設є≤є0, 則在1-α的概率(反映了結論的置信度)內所能觀察到的最大錯誤率如下式計算:
(個人理解:預測錯誤概率<α的情況下,泛化錯誤率є的最大值?)
若測試錯誤率є(^)小於臨界值,根據二項檢驗可得結論:在α顯著度下,假設є≤є0不能被拒絕,也即是能以1-α的置信度認為,學習器的泛化錯誤率不大於є0。