1. 程式人生 > >機器學習總結之第二章模型評估與選擇

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

概率密度函數 列聯表 ext 5.1 ima 其中 bsp 泛化能力 分解

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

2.1經驗誤差與過擬合

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

精度 = 1 - 錯誤率

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

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

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

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

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

技術分享圖片

2.2評估方法

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

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

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

2.2.1留出法

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

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

例如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次,最終評估結果是這p次k折交叉驗證結果的均值,即進行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。

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

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

②更常用的是F1度量:

  技術分享圖片

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

  技術分享圖片

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

技術分享圖片

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

  技術分享圖片

④將各混淆矩陣的對應元素進行平均,得到TP、FP、TN、FN的平均值,記為技術分享圖片,在計算出微查準率,微查全率,以及微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檢驗

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

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

  技術分享圖片

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

    技術分享圖片

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

技術分享圖片

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

雙邊假設,陰影部分各有α/2的面積;陰影部分範圍為技術分享圖片技術分享圖片

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

  技術分享圖片

2.4.2 交叉驗證t檢驗

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

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

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

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

5*2交叉驗證

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

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

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

對每次結果都計算出方差技術分享圖片

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

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

2.4.3 McNemar檢驗

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

    技術分享圖片

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

2.4.4 Friedman檢驗與 Nemenyi後續檢驗

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

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

  技術分享圖片

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

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

變量

技術分享圖片在k和N都較大時,服從自由度為k-1的技術分享圖片分布。

上述為原始Friedman檢驗,過於保守,現在通常使用變量技術分享圖片

其中技術分享圖片由原式得到技術分享圖片。服從自由度為k-1和(k-1)(N-1)的F分布。

技術分享圖片

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

②Nemenyi後續檢驗

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

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

    技術分享圖片  

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

技術分享圖片

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

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

  技術分享圖片

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

2.5偏差與方差

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

①偏差

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

以回歸任務為例,學習算法的期望預測為技術分享圖片

使用樣本數相同的不同訓練集產生的方差為技術分享圖片

噪聲為技術分享圖片

期望輸出與真是標記的差別成為偏差(bias),即技術分享圖片

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

技術分享圖片

技術分享圖片

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

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

②方差

偏差和方差是有沖突的。

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

技術分享圖片

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