機器學習演算法筆記之7:模型評估與選擇

marsjhao發表於2020-04-06

一、經驗誤差與過擬合

我們通常把分類錯誤的樣本數佔樣本總數的比例稱為“錯誤率”,即如果在m個樣本中有a個樣本分類錯誤,則錯誤率E=a/m,1-a/m稱為精度,精度=1-錯誤率。我們把學習器的實際預測輸出與樣本的真實輸出之間的差異稱為誤差,學習器在訓練集上的誤差稱為訓練誤差或經驗誤差,在新樣本上的誤差稱為泛化誤差。

當學習器把訓練樣本學得太好的時候,很可能已經把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,這樣就會導致泛化能力下降,稱為過擬合。過擬合是機器學習面臨的關鍵障礙,各類學習演算法都必然帶有一些針對過擬合的措施;然而必須認識到,過擬合是無法徹底避免的,我們所能做的只是緩解或者減小其風險。

二、評估方法

為了對學習器的泛化效能進行評估,我們需要一個“測試集”來測試學習器對新樣本的判別能力,以測試集上的“測試誤差”作為泛化誤差的近似。通常我們假設測試樣本是從真是樣本中的獨立同分布取樣而得。需要注意的是,測試集應儘可能與訓練集互斥,即測試樣本儘量不在訓練集中出現、未在訓練過程中使用過。

1. 留出法

留出法直接將資料集D劃分為兩個互斥的集合,一個作為訓練集S,另一個作為測試集T。訓練集/測試集的劃分要儘可能保持資料分佈的一致性,如果從取樣的角度來看待資料集的劃分過程,通常採用“分層取樣”。

由於存在多種劃分方式多資料集D進行分割,不同的劃分對應的模型評估也會存在差別。單次使用留出法得到的估計結果往往不夠穩定可靠,在使用留出法時,一般採用若干次隨機劃分、重複進行實驗評估後取平均值作為留出法的評估結果。

2. 交叉驗證法

交叉驗證法(crossvalidation)先將資料集D劃分為k個大小相似的互斥子集,每個子集都儘可能保持資料分佈的一致性,即從D中通過分層取樣得到。每次用k-1個子集的並集作為訓練集,餘下的那個子集作為測試集;這樣就可得到k組訓練集/測試集,可進行k次訓練和測試,最終返回這k次測試結果的均值,稱“k折交叉驗證”。

與留出法相似,將資料集D劃分為k個子集同樣存在多種劃分方式,因此k折交叉驗證通常也要隨機使用不同的劃分方式重複p次,最終的評估結果是這p次k折交叉驗證的結果的均值。

假定資料集D中包含m個樣本,若令k=m,則得到交叉驗證法的一個特例:留一法(Leave-One-Out,LOO)。留一法不受資料集劃分方式的影響,留一法中被實際評估的模型與期望評估的用D訓練出的模型很相似,評估結果往往比較準確。留一法的計算開銷是相當大的。

3. 自助法

自助法(bootstrapping)是以自主取樣法(bootstrapsampling)為基礎。

三、效能度量

對學習器的泛化效能進行評估,不僅需要有效可行的實驗估計方法,還需要有衡量模型泛化能力的評價標準,這就是效能度量。

迴歸任務最常用的效能度量是“均方誤差”(mean squarederror)

更一般的,對於資料分佈D和概率密度函式p(·),均方誤差可描述為

1. 錯誤率與精度

錯誤率是分類錯誤的樣本數佔樣本總數的比例,精度則是分類正確的樣本數佔樣本總數的比例。

2. 查準率、查全率與F1

查準率與查全率是一對矛盾的度量。

3. ROC與AUC

ROC,受試者工作特徵,ReceiverOperating Characteristic

若一個學習器的ROC曲線被另一個學習器的曲線完全包住,則可斷言後者的效能優於前者;若兩個學習器的ROC曲線發生交叉,則難以一般性的斷言兩者孰優孰劣,此時較為合理的判據是比較ROC曲線下的面積,即AUC(Area Under ROC Curve)。

4. 代價敏感錯誤率和代價曲線

在非均等代價下,我們所希望的不再是簡單地最小化錯誤次數,而是希望最小化“總體代價”。設第0類作為正類,第1類作為反類,令D+與D-分別代表D的正例子集和反例子集,則“代價敏感”錯誤率為


四、比較檢驗

統計假設檢驗(hypothesistest)為我們進行學習器效能比較提供了重要依據。

更多請參見《機器學習》和《應用數理統計》。

五、偏差與方差

為了瞭解學習演算法為什麼具有這樣的效能,我們使用“偏差-方差分解”(bias-variance decomposition)來解釋學習演算法泛化效能。

對測試樣本x,令yDx在資料集中的標記,y為x的真實標記,f(x;D)為訓練集D上學得模型f在x上的預測輸出。以迴歸任務為例,學習演算法的期望預測為,使用樣本數相同的不同訓練集產生的方差為,噪聲為,期望輸出與真實標記的差別稱為偏差(bias),即。為便於討論,假定噪聲期望為零,即。通過簡單的多項式展開合併,可對演算法的期望泛化誤差進行分解:於是,,也就是說,泛化誤差可分解為偏差、方差與噪聲之和。

偏差度量了學習演算法的期望預測與真實結果的偏離程度,即刻畫了學習演算法本身的擬合能力;方差度量了同樣大小的訓練集的變動所導致的學習效能的變化,即刻畫了資料擾動所造成的影響;噪聲則表達了在當前任務上任何學習演算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。偏差-方差分解說明,泛化能力是由學習演算法的能力、資料的充分性以及學習任務本身的難度所共同決定的。

一般來說,偏差與方差是衝突的,稱為偏差-方差窘境(bias-variancedilemma)。


相關文章