機器學習總結之第二章模型評估與選擇


2.1經驗誤差與過擬合

錯誤率 = a個樣本分類錯誤/m個樣本

精度 = 1 - 錯誤率

誤差:學習器實際預測輸出與樣本的真是輸出之間的差異。

訓練誤差:即經驗誤差。學習器在訓練集上的誤差。

泛化誤差:學習器在新樣本上的誤差。

 

過擬合:學習器把訓練樣本學的”太好”,把不太一般的特性學到了,泛化能力下降,對新樣本的判別能力差。必然存在,無法徹底避免,只能夠減小過擬合風險。

欠擬合:對訓練樣本的一半性質尚未學好。

2.2評估方法

(在現實任務中,還需考慮時間、存儲空間等開銷,和其他因此。這里只考慮泛化誤差。)

用一個測試集來測試學習其對新樣本的判別能力,然后以測試集上的測試誤差作為泛化誤差的近似。

 

在只有一個包含m個樣例的數據集D,從中產生訓練集S和測試集T

2.2.1留出法

D分為兩個互斥的集合,一個作為S,一個作為T

分層采樣:ST中正例和反例比例一樣。

例如D包含500個正例,500反例。分層采樣獲得含70%樣本的S,有350正例,350反例;30%樣本的T,有150正例,150反例。

 

一般采用隨機划分、重復進行實驗評估后取平均值作為留出法的評估結果。

例如,進行100次隨機划分,每次產生一個訓練/測試集用於實驗評估,100次后得到100個結果,而留出法返回的則是這100個結果的平均。

 

弊端:T比較小,評估結果不夠穩定准確,偏差大。

常見將大約2/3~4/5的樣本用於訓練,剩余樣本用於測試。

 

2.2.2交叉驗證法

D划分為k個大小相似的互斥子集。(D通過分層采樣得到每個子集Di,保持數據分布一致性)。每次用k-1個子集的並集作為訓練集,余下那個作測試集。即可獲得K組訓練/測試集,進行K次訓練和測試,最終返回k個測試結果的均值。也稱”k折交叉驗證”。

為減小因樣本划分不同而引入的差別,k折交叉驗證要隨機使用不同的划分重復p次,最終評估結果是這pk折交叉驗證結果的均值,即進行p*k次訓練/測試。

 

留一法:m個樣本划分成m個子集,每個子集包含一個樣本。留一法中被實際評估的模型與期望評估的用D訓練出來的模型很相似,因此,留一法的評估結果往往被認為比較准確。

留一法缺陷:數據集較大,例如,數據集包含100w個樣本,則需訓練100w個模型。且留一法的估計結果未必比其他評估法准確。

 

2.2.3自助法

m個樣本的數據集D,隨機采樣()一個樣本,拷貝入訓練D,放回,繼續隨機挑選,直至m次。

樣本在m次采樣中始終不被踩到的概率(1-1/m)^m

  

實際評估的模型與期望評估的模型都使用m個訓練樣本,而仍有約1/3的沒有在訓練集的樣本用於測試。

自助法在數據集較小、難以有效划分訓練/測試集時很有用。在初始數據量足夠時,留出法和交叉驗證法更常用。

 

2.2.4調參與最終模型

①選擇適合的學習算法

②對算法參數進行設定,調參

 

2.3性能度量

性能度量:衡量模型泛化能力的評價標准。

給定樣例集D={(x1,y1),(x2,y2),……,(xm,ym)},yi是對xi的真實標記,要評估學習器f的性能,就要把學習器預測結果f(x)與真實標記y進行比較。

均方誤差:

   

數據分布D和概率密度函數p(.),均方誤差:

  

2.3.1錯誤率與精度

錯誤率:分類錯誤的樣本數占樣本總數的比例。

  

精度:分類正確的樣本數占樣本總數的比例。

  

數據分布D和概率密度函數p(.)

錯誤率:

  

精度:

  

2.3.2查准率、查全率與F1

二分類

True positive 真正例

False positive 假正例

True negative 真反例

False negative 假反例

TP+FP+TN+FN = 樣例總數

①查准率P

  

查全率R

  

通常,查准率高時,查全率偏低;查全率高時,查准率偏低。

例如,若希望好瓜盡可能的挑選出來,則可通過增加選瓜的數量來實現,查准率就會低;

若希望挑出的瓜中好瓜比例盡可能高,則可挑選有把握的瓜,必然會漏掉好瓜,查全率就低了。

 

學習器把最可能是正例的樣本排在前面。按此排序,把樣本作為正例進行預測,根據PR繪圖。

如果一個學習器的PR曲線包住了另一個,則可以認為A的性能優於C

如果有交叉,如AB,期望PR雙高,綜合考慮PR性能。

引入平衡點(BEP),基於BEP比較,A優於B

 

②更常用的是F1度量:

  

Fβ :F1的一般形式,能讓我們表達對查准率/查全率的不同偏好。

  

Β>0度量了查全率對查准率的相對重要性;β=1退化為F1;β>1查全率有更大影響;β<1查准率有更大影響。

 

③在混淆矩陣上分別計算查准率和查全率,在計算平均值,得到宏查准率,宏查全率,以及宏F1

  

④將各混淆矩陣的對應元素進行平均,得到TPFPTNFN的平均值,記為在計算出微查准率,微查全率,以及微F1

  

2.3.3 ROC AUC

最可能是正例的樣本排在前面,按此排序。排序中某個截斷點,前一部分判斷正例,后一部分為反例。不同任務中根據需求划分截斷點;重視查准率,靠前位置截斷;重視查全率,靠后位置截斷。

ROC:縱軸:真正例率TPR;橫軸:假正例率FPR

  

現實中,有限個測試樣例繪制ROC,不可能光滑。只能像右圖一樣。

前一個標記點坐標為(x,y),當前若為真正例,則標記為;假正例,用線段連接。

 

若一個學習器的ROC曲線被另一個包住,后者的性能能優於前者;若交叉,判斷ROC曲線下的面積,即AUC

  

AUC考慮的是樣本預測的排序質量,因此它與排序誤差有緊密聯系。給定m+個正例,m-個反例,令D+D-分別表示正、反例集合,則排序”損失”定義為

  

Lrank對應ROC曲線之上的面積:若一個正例在ROC曲線上標記為(x,y),則x恰是排序在期前的所有反例所占比例,即假正例,因此:

  

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

代價矩陣:

costij表示將第i類樣本預測為第j類樣本的代價。

  

非均等代價下,希望總體代價最小化。

 

若假設第0類為正類,1為反類。D+代表例集正例子集,D-反例子集,則代價敏感錯誤率為:

  

在非均等代價下,ROC不能直接反應出學習器的期望總體代價,代價曲線可以。橫軸為[0,1]的正例函數代價

  

p是樣例為正例的概率;縱軸是取值為[0,1]的歸一化代價

  

FPR假正例率,FNR=1-TPR假反例率。

 

ROC每個點,對應代價平面上一條線。

例如,ROC(TPR,FPR),計算出FNR=1-TPR,在代價平面上繪制一條從(0,FPR)(1,FNR)的線段,面積則為該條件下期望的總體代價。所有線段下界面積,所有條件下學習器的期望總體代價。

  

按照圖來看,最終總體代價越來越小。(學習器,不斷進步!)

 

2.4比較檢驗

默認以錯誤率為性能度量,用ε表示。

2.4.1假設檢驗

學習器泛化錯誤率,並不能測量;只能獲知其測試錯誤率。泛化錯誤與測試錯誤率未必相同,但兩者接近的可能性比較大,因此,用后者估推出泛化錯誤率的分布。

泛化錯誤為的學習器在一個樣本上犯錯的概率是;測試錯誤率意味着在m個測試樣本中恰有*m個被誤分類。

包含m個樣本的測試集上,泛化錯誤率為的學習器被測得測試錯誤率為的概率:

  

即為

給定測試錯誤率,則解可知,時最大,增大時減小。符合二項分布。

例如,=0.3,則10個樣本中3個被誤分類的概率最大。

  

我們根據圖表粗略估計ε0,比如這幅圖當中ε0可取5,6,7都可以,然后求出總體概率α,我們把大多數樣本分布的區間1-α稱為置信區間,所以只要不超過ε0,即在置信度下就是符合條件的假設 ,否則被拋棄,即在α顯著度下。

 

t檢驗

多次重復留出法或是交叉驗證法等進行多次訓練/測試,得到多個測試錯誤率。

平均測試錯誤率μ和方差σ²為

  

考慮到這k個測試錯誤率可看作泛化錯誤率的獨立采樣,則變量

    

服從自由度為k-1t分布。

當測試錯誤率均值為時,在1-α概率內觀測到最大的錯誤率,即臨界值。

雙邊假設,陰影部分各有α/2的面積;陰影部分范圍為

若平均錯誤率μ與之差|μ-|位於臨界值范圍內,則可認為泛化錯誤率為置信度為1-α;否則,認為在該顯著度下可認為泛化錯誤率與有顯著不同。

   

2.4.2 交叉驗證t檢驗

對不同學習器的性能進行比較。

兩個學習器AB,若使用k折交叉驗證法得到的測試錯誤率分別為,其中是在相同的第i折訓練/測試集上得到的結果,可用k折交叉驗證成對t檢驗”來進行比較檢驗。,使用相同的訓練/測試集的測試錯誤率相同,兩個學習器性能相同。

k折交叉驗證產生k對測試錯誤率:對沒對結果求差若性能相同則是0。用,t檢驗,計算差值的均值μ和方差σ²。

若變量小於臨界值,則認為兩個學習器的性能沒有顯著差別;否則,可認為兩個學習器性能有顯著差別,錯誤平均率小的那個學習器性能較優。

 

5*2交叉驗證

假設檢驗的前提:測試錯誤率均為泛化錯誤率的獨立采樣。

因樣本有限,加查驗證不同輪次訓練集有重疊,測試錯誤率實際上不獨立,會導致過高估計假設成立的概率。5*2交叉驗證,可緩解這一問題。

5*2交叉驗證,52折交叉驗證。ABi2折交叉驗證產生兩對測試錯誤率,對它們分別求差,得到第1折上的差值和第2折上的差值為緩解測試錯誤率的非獨立性,僅計算第一次2折交叉驗證的結果平均值

對每次結果都計算出方差

變量服從自由度為5t分布,其雙邊檢驗的臨界值

α=0.05時為2.5706;α=0.1是為2.0150

 

2.4.3 McNemar檢驗

列聯表:估計學習器AB的測試錯誤率;獲得兩學習分類結果的差別,兩者都正確,都錯誤或者一個正確一個錯。

    

若假設AB學習器起能相同,則應由e01=e10,那么|e01-e10|應服從正態分布。McNemar檢驗考慮變量服從自由度為1分布,即標准正態分布變量的平方。給定顯著度α,當以上變量值小於臨界值時,認為兩學習器性能沒有顯著差別;否則性能又顯著差別。當α=0.05時為3.8415;α=0.1是為2.7055.

 

2.4.4 Friedman檢驗與 Nemenyi后續檢驗

①一組數據集上對多個算法進行比較,基於算法排序的Friedman檢驗

假定用D1D2D3D4四個數據集對ABC進行比較,由好到懷排序,並賦予序值1,2,……

  

性能相同,平均序值應當相同。

假定N個數據集上比較k個算法,令ri表示第i個算法的平均序值。簡化考慮不考慮平分均值的情況,則ri的平均值和方差分別為

變量

kN都較大時,服從自由度為k-1分布。

上述為原始Friedman檢驗,過於保守,現在通常使用變量

其中由原式得到服從自由度為k-1(k-1)(N-1)F分布。

若”所有算法的性能相同”這個假設被拒絕,說明算法的性能顯著不同。

 

Nemenyi后續檢驗

進行”后續檢驗”來進一步區分個算法,常用的有 Nemenyi后續檢驗。

Nemenyi檢驗計算出平均序值差別的臨界值域

      

 

下表給出α=0.050.1時常用的qα值,若兩個算法的平均序值之差超出了臨界值域CD,則以相應的置信度拒絕”兩個算法性能相同”這一假設。

大於α=0.05時的F檢驗臨界值5.143,因此拒絕”所有算法性能相同”這個假設;用Nemenyi后續檢驗,選擇kq,根據式算出CD,可知算法兩兩之間是否有顯著差別。

 

根據上面表2.5繪制出Friedman檢驗圖。

  

橫軸:平均序列,每個算法用原點表示平均序列,橫線表示臨界值域大小。從圖中觀察,若兩算法橫線段有交疊,說明沒有顯著差別。例如圖中,算法AB沒有顯著差別,而算法A優於算法C,無交疊區。

 

2.5偏差與方差

偏差-方差分解:解釋學習算法泛化性能的一種重要工具。

①偏差

對測試樣本x,令yDx在數據集中的標記,yx的真實標記,f(x;D)為訓練集D上學得模型fx上的預測輸出。

以回歸任務為例,學習算法的期望預測為

使用樣本數相同的不同訓練集產生的方差為

噪聲為

期望輸出與真是標記的差別成為偏差(bias),即

 

假定噪聲期望為0,通過簡單的多項式展開合並,可對算法的期望泛化誤差進行分解:

即泛化誤差可分解為偏差、方差與噪聲之和。

范圍性能是由學習算法的能力、數據的充分性以及學習任務本身的難度所共同決定的。

 

②方差

偏差和方差是有沖突的。

訓練不足時,由偏差主導泛化誤差;訓練充足時,有方差主導泛化誤差。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM