模型評估與選擇

2.1 經驗偏差與過擬合


錯誤率(error rate):分類錯誤的樣本數佔總樣本數的比例算法

精度(accuracy)= 1 - 錯誤率bootstrap

偏差(error):學習器的實際預測輸出與樣本的真實輸出之間的差別app

訓練偏差(training error)/經驗偏差(empirical error):學習器在訓練集上的偏差機器學習

泛化偏差(generalization error):學習器在新樣本上的偏差函數

過擬合(overfitting):學習器將訓練樣本學習得太好,而致使泛化性能降低的現象性能

欠擬合(underfitting):對訓練樣本的通常性質還沒有學好學習

選擇模型時(model selection),理想的解決方案是對候選模型的泛化偏差進行評估,而後選擇泛化偏差最小的。然而,泛化偏差沒法直接得到,這就引出模型評估與選擇問題。測試

2.2 模型評估與選擇


爲評估泛化偏差而一般採用的方法爲實驗測試,即便用一個測試集來測試學習器對新樣本的判斷能力,而後將測試集上的測試偏差(testing error)做爲泛化偏差的近似。通常狀況下,假設測試集樣本是從樣本真實分佈iid採樣獲得。值得注意的是,採用此方法時,測試集應儘量與訓練集互斥。spa

經過對數據集D={(x1,y1),(x2,y2),...,(xm,ym)}進行處理,能夠獲得訓練集S與測試集T。處理方法包含如下幾類:3d

a. 留出法(hold-out)

直接將D劃分爲互斥的集合S與T,值得注意的是,劃分時要保證S與T的數據分佈一致性。另外一個問題是,即使給出了S與T的比例,仍然存在對D的多種分割方式,採不一樣的分割方式的評估策略間會有差別。通常將2/3~4/5的樣本用於訓練,剩下的用於測試,採用若干隨機劃分、重複進行實驗後取平均值做爲留出法的評估結果。

b. 交叉驗證法(cross validation)

先將D劃分爲k個大小類似的互斥子集,即

每一個子集Di都儘量保持數據分佈一致性,即從D中分層採樣獲得。而後,每次用k-1個子集做爲訓練集,餘下的那個子集做爲測試集。最終返回k組測試的均值。

交叉驗證法的結果的穩定性和保真性很大程度上取決於k的取值,所以又稱爲「k折交叉驗證」(k-fold cross validation)。一般取k=10。

設D包含m個樣本,令k=m,則獲得交叉驗證法的一個特例:留一法(Leave-One-Out, LOO)。留一法不受隨機樣本劃分方式的影響。另外,在絕大多數狀況下,留一法中被實際評估的模型與指望評估的用D訓練出的模型很類似,所以其評估結果每每認爲比較準確。缺陷是:數據集較大時,訓練m個模型的開銷太大,以及NFL定理對留一法一樣適用。

c. 自助法(bootstrapping)

自助法以自助採樣(bootstrap sampling)爲基礎[Efron and Tibshirani, 1993],即給定包含m個樣本的數據集D,對其隨機採樣產生數據集D‘:每次隨機挑選一個樣本,將其拷貝放入D',再將樣本放回D中,使得該樣本在下次採樣時仍可能被採集到;此過程重複n次後,獲得了包含m個樣本的D'。作一個簡單的估計,樣本在m次採樣中始終不被採集到的機率是(1-1/m)m,取極限獲得1/e≈0.368。所以,經過自助採樣,D中36.8%的樣本未出如今D‘中。因而能夠將D'用做訓練集,將D\D'用做測試集。這樣的測試結果亦稱爲「包外估計」。

自助法適用於數據集較小、難以有效劃分訓練/測試集的狀況。以及,它能夠從初始數據集中產生多個不一樣的訓練集,這對集成學習算法比較有用。缺陷是,因爲改變了初始數據集分佈,自助法會引入估計誤差。所以,在數據量足夠時,留出法與交叉驗證法更經常使用。

d. 調參與最終模型

大多數學習算法有參數設定。所以在評估、選擇模型時,除了選擇算法,還須要調整參數(parameter tuning)。經常使用的作法是爲每一個參數選定範圍和步長。強大的學習算法須要大量的參數設定,以至在許多任務中,參數設定對模型的性能有關鍵性影響。

在選定學習算法和參數後,應當用數據集D從新訓練模型。

事實上,咱們一般把模型在實際應用中遇到的數據稱爲「測試數據」,爲加以區分,將評估測試時的數據集稱爲「驗證集」(validation set)。

2.3 性能度量


性能度量(performance measure)的含義是衡量模型泛化能力的評價標準。在預測任務中,評估學習器ƒ的性能,就是要把學習器預測結果ƒ(x)與真實標記y比較。

迴歸任務最經常使用性能度量爲「均方偏差」(mean squared error):

更通常的,對於數據分佈D和機率密度函數p(•),均方偏差能夠描述爲

2.3.1 錯誤率與精度

對於樣例集D,分類錯誤率定義爲

精度則定義爲

更通常的,對於數據分佈D和機率密度函數p(•),錯誤率與精度能夠分別描述爲

 

2.3.2 查準率,查全率與F1

錯誤率與精度不能知足全部任務要求。這樣的需求在信息檢索、Web搜索等應用中十分常見。例如,當咱們想要知道「檢索出的信息中有多少比例是用戶感興趣的」,或者「用戶感興趣的信息中有多少被檢索出來」時,錯誤率是不夠用的。爲此,引入「查準率」(precision)與「查全率」(recall)性能度量。

對於二分問題,能夠將樣例根據其真實類別與學習器預測類別的組合,劃分爲四種情形:

  • 真正例(true positive)
  • 假正例(false positive)
  • 真反例(true negative)
  • 假反例(false positive)

獲得分類結果的「混淆矩陣」(confusion matrix):

 

用TP,FP,TN,FN分別表示其對應的樣例數,則有TP+FP+TN+FN=樣例總數。因而,查準率P與查全率R分別定義以下:

值得注意的是,查全率與查準率是一對矛盾的度量;其中一者高時,另外一者每每比較低。

不少情形下,能夠根據學習器的預測結果對樣例進行排序,學習器認爲「最可能」是正例的樣本排在前。按此順序把樣本做爲正例預測,能夠計算出當前的查全率、查準率。以查準率爲縱軸,查全率爲橫軸,獲得顯示「P-R曲線」的「P-R圖」(以下圖,圖取自書中):

進行比較時,若一個學習器的P-R曲線被另外一個學習器的曲線徹底「包住」,則能夠斷言後者的性能優於前者。對於曲線交叉的狀況,則能夠比較將面積的大小。

但面積一般不太容易計算,因而引入「平衡點」(Break-Event Point, BEP)做爲性能度量,即P=R時的取值。取值越高,認爲學習器的性能越好。

但BEP仍是過於簡化了些,更經常使用的是F1度量:

F1是基於查準率與查全率的調和平均定義的(harmonic mean)。與幾何平均與算術平均相比,調和平均更注重較小值。

當查準率與查全率並非同等重要時,能夠採用F1度量的通常形式——Fβ

Fβ是加權調和平均(對1/R加權β2)。其中β>0度量了查全率對查準率的相對重要性;β>1時查全率有更大影響,β<1時查準率有更大影響,β=1是退化爲F1。

如何在n個二分混交矩陣上綜合考慮查準率與查全率?

一種方法是先算出查準率與查全率,再取平均,獲得:

宏查準率(macro-P

宏查全率(macro-R

F1(macro-F1)

 

另外一種方法是先對TP、TN、FP、FN取平均,再計算查準率、查全率、F1,獲得:

微查準率(micro-P

 

微查全率(micro-R

 

 

F1(micro-F1)

 

2.3.3 ROC與AUC

ROC全稱爲「受試者工做特徵」(Receiver Operating Characteristic)曲線,源於二戰中雷達信號分析技術,後引入機器學習[Spackman,1989]。

根據學習器爲樣本產生的機率預測,對樣本進行排序:「最可能」是正例的排在前,「最不可能」是正例的排在後。分類過程至關於在對樣例的排序中插入「截斷點」(cut point),前一部分判爲正例,後一部分判爲反例。在不一樣應用任務中,可根據任務需求的不一樣採用不一樣的截斷點。所以,這個排序自己的好壞,體現了綜合考慮學習器在不一樣任務下「指望泛化性能」的好壞。ROC曲線從這個角度出發研究學習器泛化性能。

如上一段所述,咱們將樣例排序,按此順序逐個把樣本做爲正例進行預測,每次計算出兩個重要的值:「真正例率」(True Positive Rate, TPR)「假正例率」(False Positive Rate, FPR),分別做爲橫軸和縱軸做圖,就獲得ROC曲線。其中

  

 

ROC曲線的做圖方法詳見書p.34。

與P-R圖類似,若一個學習器的ROC曲線被另外一個學習器的曲線包住,則能夠斷言後者性能優於前者。曲線發生交叉時,能夠比較ROC曲線下的面積,即AUC(Area Under ROC Curve)。

AUC考慮樣本預測的排序質量。給定m+個正例和m-個反例,則有

 

其中lrank爲排序的「損失」(loss),定義以下:

2.3.4 代價敏感錯誤與代價曲線

 現實任務中,不一樣的錯誤會形成不一樣的結果。爲權衡不一樣類型的錯誤形成的不一樣損失,可爲錯誤賦予「非均等代價」(unequal cost)

 例如,在二分任務中,能夠獲得下述」代價矩陣「(cost matrix):

在非均等代價下,咱們但願作的再也不是簡單地最小化錯誤次數,而是但願最小化「整體代價」(total cost)。例如,若將上表中第0類做爲正類,第一類做爲反類,令D+和D-分別表明正例子集和反例子集,則「代價敏感」(cost-sensitive)錯誤率

 

在非均等代價下,ROC曲線不能直接反映出學習器的指望整體代價,而「代價曲線」(cost curve)則能夠達成目的。代價曲線的橫軸是取值爲[0,1]的正例機率代價

 

其中p是正例的機率;縱軸是取值爲[0,1]的歸一化代價

 

 

其中FNR=1-FPR是假反例率。代價曲線的繪製方法見書p.36。

相關文章
相關標籤/搜索