《機器學習》學習筆記(二)——模型評估與選擇

機器學習(Machine Learning)是一門多學科交叉專業,涵蓋概率論知識,統計學知識以及複雜算法知識,使用計算機作爲工具並致力於真實實時的模擬人類學習方式, 並將現有內容進行知識結構劃分來有效提高學習效率。本專欄將以學習筆記形式對《機器學習》的重點基礎知識進行總結整理,歡迎大家一起學習交流!
專欄鏈接:《機器學習》學習筆記

目錄

1 本文開篇,先介紹幾個概念

2 模型選擇(model selection)

2.1 評估方法

2.1.1 留出法 (hold-out)

2.1.2 交叉驗證法 (cross validation)

2.1.3 自助法 (bootstrap)

2.1.4 “調參”與最終模型

2.1.5 區別:訓練集  vs.  測試集  vs. 驗證集

2.2 性能度量(performance measure)

2.2.1 錯誤率與精度

2.2.2 查準率與查全率

2.2.3 查準率-查全率曲線(P-R曲線)、BEP

2.2.4 ROC與AUC(★★★)

2.2.5 代價敏感錯誤率和代價曲線

2.3 比較檢驗

3 本章總結

歡迎留言,一起學習交流~~~

END


 

1 本文開篇,先介紹幾個概念

錯誤率(error rate):分類錯誤的樣本佔樣本總數的比例
精度(accuracy):1 - 錯誤率誤差(error):學習器的實際預測輸出與樣本的真實輸出之間的差異
錯誤率和精度相反 (錯誤率+精度=1)
訓練誤差(training error)(即經驗誤差(empirical error)):學習器在訓練集上的誤差
泛化誤差(generalization error):在新樣本(即測試樣本)上的誤差

下面給出兩個實例更好地理解這些概念
eg1. 100個樣本(80個預測正確,20個預測錯誤)
         錯誤率:20/100=0.2
         精度:80/100=0.8       
eg2. 250個樣本(150個訓練樣本【30個預測錯誤】100個測試樣本【20個預測錯誤】)
         訓練誤差/經驗誤差=30/150=1/5=0.2  
         泛化誤差=20/100=0.2

★測試誤差/泛化誤差用來衡量模型性能的好壞(值越小性能越好)
但是經驗誤差不是越小越好,因爲會出現“過擬合”(overfitting)

欠擬合:由學習能力低下造成。相對過擬合而言更容易克服(如:決策樹擴展分支,神經網絡增加訓練輪數)
過擬合:由學習能力太過於強大造成。要克服過擬合比較麻煩,過擬合是機器學習面臨的關鍵障礙,各類機器學習算法都帶有針對過擬合的措施,但過擬合是無法徹底避免的,我們所能做的只是緩解過擬合。

2 模型選擇(model selection)

三個關鍵問題:
如何獲得測試結果?  →  評估方法 
如何評估性能優劣?  →  性能度量
如何判斷實質差別?  →  比較檢驗

2.1 評估方法

這裏主要指的是對學習器的泛化誤差的評估。
通常我們用一個測試集(testing set)來測試學習器對新樣本的分類能力,並以測試集上的測試誤差作爲該學習器泛化誤差的近似。
通常我們假設測試集也是從樣本真實分佈中獨立同分布採樣而得,且測試集應儘量與訓練集互斥,否則會使我們獲得虛低的泛化誤差。

這裏我們主要討論的,便是如何從當前所擁有的數據集進行劃分得到訓練集和測試集
主要有以下幾種方法:留出法 (hold-out)、交叉驗證法 (cross validation) 、自助法 (bootstrap)

2.1.1 留出法 (hold-out)

留出法步驟:

1.劃分方式:保持數據分佈的一致性,避免因數據劃分過程引入額外的偏差而對最終結果產生影響。
      簡單來講,就是訓練集和測試集的類別數目以及類別比例要一致
      具體而言,以分類任務爲例,我們需要保證訓練集和測試集中樣本類別的比例相似(類別要有且比例要一樣,比如做樣本貓狗5:4,那麼訓練集和測試集中也要有貓和狗且比例都均要接近5:4)。從採樣的角度看,這種保持樣本類別比例的採樣方式稱爲分層採樣(stratified sampling)。若訓練集和測試集的樣本類別比例差別太大,則誤差估計會由於它們的數據分佈差異而產生偏差。
2.劃分次數:採用若干次隨機劃分、重複進行實驗評估後取平均值作爲留出法的評估結果。
     簡單理解,在第1條劃分方式條件下,多做幾次實驗,求取平均值作爲評估結果
     具體而言,在第1條的前提下,我們仍然有多種劃分方式將數據集劃分爲不同的訓練集/測試集,而不同的訓練集/測試集會使得訓練的模型評估結果有所不同。可見,單次留出法的評估結果不夠穩定可靠。故採用若干次隨機劃分、重複進行實驗評估後取平均值作爲留出法的評估結果。如進行100次的隨機劃分,每次產生一個訓練集/測試集用於評估,100次後就得到100個結果,而留出法返回的就是這100個結果的平均。
3.劃分數量:將大約2/3至4/5的樣本用於訓練,剩餘樣本用於測試。

留出法在劃分訓練集和測試集數量時的一個窘境:若訓練集過小,則評估結果偏差大;若測試集過小,則評估結果方差大。
                                                                             (一般而言,測試集至少要有30個樣本)

 

2.1.2 交叉驗證法 (cross validation)

交叉驗證法步驟:

1.通過分層採樣的方法將數據集D劃分爲k個大小相似的互斥子集(注意分層採樣之後的每個子集數據分佈具有一致性)。
2.每次用k−1個子集的並集作爲訓練集,餘下的那個子集作爲測試集。顯然,這樣就可以獲得k 組不同的訓練集+測試集組合,從而進行k 次訓練和測試,最終返回的是這k 個測試結果的均值。
3.同留出法,將數據集D 劃分爲k 組有多種不同的方式。爲減少由於數據集劃分的不同而引入的差別,k 折交叉驗證通常要隨機使用不同的劃分重複p次,最終的結果是這p次k 折交叉驗證結果的平均值
(常見的爲10次10折交叉驗證)。

k折:數據集/k=每個子集數據數(如10折,數據集1000,則1000/10=100)

設1000個樣本,分10份(子集),各100個
(與留出法區別)留出法分成兩個,交差驗證法分成十個

交叉驗證法評估結果的穩定性保真性(準確率在很大程度上取決於k 的取值,通常把交叉驗證法稱爲“k 折交叉驗證”(k-fold cross validation)。最常用的取值爲10(還有5、20等),此時稱爲10折交叉驗證。

交叉驗證法的特例:留一法
假定數據集D中包含m個樣本,若令k=m,得到了交叉驗證法的一個特例:留一法
很顯然,它的劃分不受隨機劃分的影響,因爲m個樣本只能劃分出m個數據子集(每一個樣本就是一個子集)
由於留一法的訓練集只比整個數據集少一個樣本,故往往認爲留一法的評估結果比較準缺
但是其缺陷也十分棘手:一方面,當樣本規模m很大時,計算開銷十分恐怖;另一方面,其結果未必比其它評估方法準確。

2.1.3 自助法 (bootstrap)

自助法適合小數據集(一般20個以下)
自助法亦稱亦稱“可放回採樣”、“可重複採樣”
自助法既能
減少樣本規模不同帶來的影響(解決了部分作爲測試集導致的估計偏差)
           又能高效地進行實驗估計(解決了留一法計算複雜度太高的問題)
自助法直接以自助採樣法爲基礎,以有放回採樣的方式採樣出訓練集D'
原數據集D是一個包含m個樣本的數據集,通過自助法有放回的重複抽樣m次,每次抽取1個數據,放到D'中,D'中也有m個樣本,同時,原來的數據集D中不被D'包含的數據作爲驗證集。(有多少個樣本就抽多少次,保證D‘和D樣本數目相同)
通過自助採樣,D中大約有36.8%的樣本未出現在D'中於是我們用D'做訓練集,D中除去D'的部分做測試集
這個36.8%是怎麼得到的呢?
    每個樣本被選中概率1/m
    每個樣本未被選中概率(1-1/m)
    放回,重複m次,故:

    於是,我們對m取極限 

2.1.4 “調參”與最終模型

首先,“調參”的含義就是確定模型參數的過程

算法的參數:一般由人工設定,亦稱“超參數”
                      比如在訓練過程中發現某個模型性能好,最後使其佔的權重大一些
                             在訓練過程中發現某個模型性能相對較差,最後使其佔的權重就小一些
模型的參數:一般由學習確定
                      WX=Y(其中,W是模型;X是樣本;Y是預測的標籤)
                      樣本經過模型就是樣本乘以模型的參數;W由學習來確定

調參過程相似:先產生若干模型,然後基於某種評估方法進行選擇
參數調得好不好,往往對最終模型性能有關鍵影響
算法參數選定後,要“訓練集+驗證集”重新訓練最終模型

2.1.5 區別:訓練集  vs.  測試集  vs. 驗證集

對於數據集的劃分,之前我們提到的是劃分爲訓練集和測試集
我們用測試集上的泛化誤差作爲模型在面對新樣本的誤差的近似。
對於訓練集,我們這裏再把它分出一部分數據作爲驗證集,基於驗證集上的性能來做模型選擇和調參

2.2 性能度量(performance measure)

性能度量是衡量模型泛化能力的評價標準,反映了任務需求
使用不同的性能度量往往會致不同的評判結果
什麼樣的模型是“好”的,不僅取決於算法和數據,還取決於任務需求

迴歸(regression) 任務常用均方誤差:
                                                           f:模型    D:數據    :把樣本遍歷一遍  
                                                           預測的標籤-真實的標籤=預測的誤差

2.2.1 錯誤率與精度

錯誤率
                當預測結果與真實情況不一致時,取值爲1,反之爲0。
                比如當有100個測試集,有20個預測錯誤,80個預測正確,那麼E(f:D)=(20×1+80×0)/100=0.2

精度
                精度與錯誤率之和爲1

更一般的,對於數據分佈D和概率密度函數p(·),錯誤率和精度可分別表示爲
                 
               

2.2.2 查準率與查全率

錯誤率和精度雖然常用,但並不能滿足所有需求
錯誤率僅僅衡量了有多少比例的結果被判別錯誤
但在某些情況中,我們還需要查全率和查準率來滿足我們不同的需求

在介紹查全率和查準率之前,我們先對二分類問題中的預測類別組合劃分做一個瞭解
首先給出實例:貓狗預測問題中,我們將預測結果二分類爲預測成貓取正、預測成狗取反
那麼,
真正例(true positive)[TP]:真實結果是貓,預測結果也是貓(真實爲正,預測爲正)
假正例(false positive)[FP]:真實結果是狗,預測結果是貓(真實爲反,預測爲正)
真反例(true negative)[TN]:真實結果是狗,預測結果也是狗(真實爲反,預測爲反)
假反例(false negative)[FN]:真實結果是貓,預測結果是狗(真實爲正,預測爲反)
TP+FP+TN+FN=1

接下來我們介紹查全率與查準率:
查準率(預測爲真正例的樣本數÷所有預測爲正例的樣本數)
查全率(在所有爲正的樣本中有多少比率被預測了出來)
查準率和查全率是一對矛盾的度量,查準率高時,查全率偏低;查全率高時,查準率偏低
追求高查全率時,被預測爲正例的樣本數就偏多,極端情況是將所有樣本都預測爲正例,則查全率時100%
追求高查準率時,只將有把握的樣本預測爲正例,則會漏掉一些正例樣本,使得查全率降低,極端情況是隻選擇最優把握的一個樣本預測爲正例,則查準率爲100%
下面我們還以貓狗預測問題來進一步闡釋這個知識點:
①追求高查全率:若希望貓儘可能多地選出來。
    現在有100個貓狗樣本,40只是貓,要求全部預測成貓(查全率100%)。
    則 TP=40, FP=60。(由於TP+FP+TN+FN=1,故TN+FN=0)
    那麼查全率=TP/(TP+FN)=40/(40+0)=100%
           查準率=TP/(TP+FP)=40/(40+60)=40%

②追求高查準率:若希望選出來的結果儘可能多地是貓,則選擇最有把握的貓樣本,不過這樣做難免會漏掉一些貓樣本。
    現在有100個貓狗樣本,50只是貓,只選出40只是貓,把另外10個認爲是狗。
    則 TP=40, FN=10(原本是貓,結果錯誤預測爲狗), FP=0。
    那麼查全率=TP/(TP+FN)=40/(40+10)=80%
           查準率=TP/(TP+FP)=40/(40+0)=100%

2.2.3 查準率-查全率曲線(P-R曲線)、BEP

按正例可能性將樣本排序,依次將排序的樣本作爲正例計算出查全率和查準率,依次做P-R曲線圖
查全率爲x軸、查準率爲y軸
我們還將以貓狗預測問題來解釋P-R曲線(貓正狗反)
假設有20個貓狗樣本(+表示貓,-表示狗)
{+ + + + - + + - + - - + - - + - - - + -}

排在最左側的是學習器認爲最有可能是貓的樣本,排在最右側的是學習期認爲最不可能是貓的樣本
在線從左往右逐個全部作爲正例進行預測,依次計算出查全率和查準率,並將其存入x和y中,畫出P-R曲線圖
x=[0.1 0.2 0.3 0.4 0.4 0.5 0.6 0.6 0.7 0.7 0.7 0.8 0.8 0.8 0.9 0.9 0.9 0.9 1 1]
   這裏簡單解釋一下,前面說了,x計算的是查全率(在所有爲正的樣本中有多少比率被預測了出來)
   第一個數0.1:預測結果爲正,樣本顯示爲正,TP=1,TP+FN=10,則查全率=0.1
   第二個數0.2:預測結果爲正,樣本顯示爲正,TP=2,TP+FN=10,則查全率=0.2
     ……
   第五個數0.4:預測結果爲正,樣本顯示爲負,TP=4(與第四個樣本一樣),但TP+FP在整個預測中值不變,查全率=0.4
     ……
y=[1/1 2/2 3/3 4/4 4/5 5/6 6/7 6/8 7/9 7/10 7/11 8/12 8/13 8/14 9/15 9/16 9/17 9/18 10/19 10/20]
   這裏簡單解釋一下,y計算的是查準率(預測爲真正例的樣本數÷所有預測爲正例的樣本數)
   第一個數1/1:預測結果爲正,樣本顯示爲正,此時只有一個正樣本且被預測正確,TP=1,TP+FP =1,則查全率=1/1
   第二個數2/2:預測結果爲正,樣本顯示爲正,此時有兩個正樣本且均被預測正確,TP=2,TP+FP=2,則查全率=2/2
     ……
   第五個數4/5:預測結果爲正,樣本顯示爲負,此時預測有五個正樣本但只預測準確四個,TP=4,TP+FP=5,查全率=4/5
​​​​​​​     ……

 

 我們根據P-R圖可以辨別學習器的性能好壞,那麼如何根據曲線辨別呢?

(平衡點BEP)

☞根據P-R曲線判斷學習器性能好壞:
①看是否被包含
    包住者優於被包者
②看平衡點 (BEP)
    橫座標=縱座標(45°)
    線與線交點,高者爲好
③當①和②均無法判斷時,求曲線與x、y軸圍成的面積
    面積越大,認爲學習器性能越好

比 BEP 更常的 F1 度量:

若對查準率/查全率不同偏好:

                                                 
Fβ的物理意義就是將準確率和召回率這兩個分值合併爲一個分值,在合併的過程中,召回率的權重是準確率的β倍。
F1分數認爲召回率和準確率同等重要;
F2分數認爲召回率的重要程度是準確率的2倍;
F0.5分數認爲召回率的重要程度是準確率的一半。
通常情況下,重要性一樣用F1、重要性不一樣用Fβ(這裏的重要性指的是對查全率和查準率的偏好程度

那麼,爲何選用F1值(調和平均數)衡量P與R呢?(F1不用於判斷學習器性能好壞,F1只是說明P和R之間的關係,判斷學習器性能好壞就用前面講述的P-R曲線就可以
因爲F1是基於P和R的調和平均數,即F1的倒數爲P和R的倒數之和的二分之一
在統計學中,調和平均數(F)、幾何平均數(G)、算數平均數(X)它們之間的關係用公式表示爲
也就是說,調和平均數受極端值影響較小,更適合評價不平衡數據的分類問題。

由於前面只是討論了一個混淆矩陣的情況,那麼當我們遇到多個混淆矩陣的時候怎麼判別學習器好壞呢?於是下面我們引入了宏觀查準率、查全率、F1 和 微觀查準率、查全率、F1。

宏(macro-)查準率、查全率、F1
     
先在各個混淆矩陣中計算出查準率和查全率(P1,R1)(P2,R2)……(Pn,Rn),再計算平均值
     

微(micro-)查準率、查全率、F1
     
先求出每一個微觀混淆矩陣元素的平均值(即FP、TP、FN等),再基於這些平均值計算查全率和查準率
      

2.2.4 ROC與AUC(★★★

我們通過學習器可得到樣本對應的預測實值或概率值
根據預測實值或概率值,我們可將樣本排序,於是越有可能是正例的樣本排在越前面。
將這個預測值與一個分類閾值進行比較,大於閾值爲正類,小於則爲反類。
分類過程就相當於在這個排序中以某個截斷點(即閾值)將樣本分爲兩部分,前一部分判作正例,後一部分判作反例。
根據任務需求我們對查準率和查全率有不同的偏好,對此我們採取不同的截斷點:
偏好查準率:選擇靠前的位置進行截斷(可使得預測到的儘可能準確)
偏好查全率:選擇靠後的位置進行截斷(可使得預測到的儘可能全面)

ROC(Receiver Operating Characteristic)全稱是“受試者工作特徵”曲線​​​​​​​
與P-R曲線類似,根據預測值進行排序,按此順序逐個把樣本作爲正例進行預測,每次計算出真正例假正例,並以它們作爲座標作圖,得到的這個圖就是這裏說的ROC曲線。
ROC曲線中假正例率爲x軸和真正例率爲y軸
其中,真正例率公式
           假正例率公式

逐個將樣本作爲正例進行計算,更改的步長爲
具體步驟:
①初始時假正例率和真正例率都爲0
②依次將每個樣本作爲正例:若當前樣本爲真正例,則真正例率+ 對應標記點座標變爲(x,y+)
                                               若當前樣本爲假正例,則假正例率+ 對應標記點座標變爲(x+,y)

例如,包含20個樣木的埋想模型和隨機猜測模型樣本排序如下:
           理想模型:+ + + + + + + + + + - - - - - - - - - -
           隨機猜測:+ - + - + - + - + - + - + - + - + - + -
          執行如下Matlab代碼,可分別繪出理想模型和隨機猜測模型的ROC曲線:
          TPRideal=[0 0.l 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0];
                          
這裏簡單解釋一下,TPRideal計算的是理想模型的真正例率
                          第一個數 0  :初始時假正例率和真正例率都爲0
                          第二個數0.1:預測結果爲正,樣本顯示爲正,TP=1,TP+FN=10,則真正例率=0.1
                            ……
                          第十二個數1.0:預測結果爲正,樣本顯示爲負,TP=10,TP+FP=10,則真正例率=1.0
                            ……
          FPRideal=[0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0];
          TPRrand=[0 0.1 0.1 0.2 0.2 0.3 0.3 0.4 0.4 0.5 0.5 0.6 0.6 0.7 0.7 0.8 0.8 0.9 0.9 1.0 1.0|:
          FPRrand=[0 0.0 0.1 0.1 0.2 0.2 0.3 0.3 0.4 0.4 0.5 0.5 0.6 0.6 0.7 0.7 0.8 0.8 0.9 0.9 1.0];

                            
這裏簡單解釋一下,FPRrand計算的是隨機模型的假正例率
                           第一個數 0  :初始時假正例率和真正例率都爲0
                           第二個數0.0:預測結果爲負,樣本顯示爲正,FP=0,TN+FP=10,則假正例率=0.0
                           第三個數0.1:預測結果爲負,樣本顯示爲負,TP=1,TP+FP=10,則假正例率=0.1
                             ……
         

根據這個例子我們可以看出利用上面所述的更改的步長爲的具體步驟更簡便的可以求出理想模型和隨機模型的TPR和FPR
TPRideal=[0 0.l 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0]爲例說明一下
依次將每個樣本作爲正例:若當前樣本爲真正例,則真正例率+ 對應標記點座標變爲(x,y+)
                                           若當前樣本爲假正例,則假正例率+ 對應標記點座標變爲(x+,y)
根據這一步驟,第一個數0是初始化確定的,第二個數因爲預測爲正例,當前理想模型樣本顯示也爲正例,而且全部樣本中,正例和反例各爲10個,則對應座標變爲(x,y+)也就是(0,0.1),同理第二個、第三個座標分別爲(0,0.2)、(0,0.3)……後面都是這個道理

☞通過ROC曲線對學習器進行比較的判別標準與P-R曲線類似:
①若曲線A包住曲線B,則學習器A優於學習器B
②若兩曲線交叉,則比較ROC曲線下的面積,即AUC


AUC大小計算公式
這裏給出一幅微觀圖便於理解AUC公式的每一小格計算思路

整個公式就是在計算每一個個小矩形之和後進而求出AUC的大小

注:
上述公式Ⅱ含義:括號內若爲真,取1值;若爲假,取0值
表示正例、反例個數,表示正、反例集合
:所有正反例組合對的組合數量
正例預測值小於反例,記“罰分”爲1,;若相等,記“罰分”爲0.5(所以後半式子乘1/2)
對應的是ROC曲線之上的面積,故AUC=1-
若一個正立在ROC曲線上對應標記點的座標爲(x,y),則x恰是排序在其之前反例所佔的比例(1/),即假正利率
正例對應的預測值應該大於反例對應的預測值,故有公式所示的罰分(其實也是根據ROC曲線之上的面積纔有的罰分);
顯然,越小越好
任取一對正例反例,正例預測值大於反例預測值的概率;顯然,AUC越大越好

那麼,這裏還有個問題,上述的描繪過程是怎樣來的呢?也就是ROC面積及面積指的是哪個位置,爲什麼呢?
爲了迴應這個問題,先給出一個示例:

根據這張圖,我們可以算出ROC曲線之上的面積,也就是知道ROC曲線之上的小矩形的個數
方法是看排序結果中每次最初及後面出現反例後的正例個數之和
可能說的比較拗口,給出實例:就以上圖第一個排序結果來說,初次出現反例值爲0.7,後面有三次出現正例,之後的0.5後有三次出現正例,所以這種排序結果下的ROC曲線之上有3+3=6個小矩形;看第二個排序結果,第一次出現反例0.7之後有3個正例,第二次出現反例0.5之後有2個正例,那麼這種排序情況下ROC曲線之上有小矩形2+3=5個(反例標註爲黑色,正例標註爲紅色,以此類推即可)


個正例與個反例,由於將分類閾值依次設爲每個樣本的預測值,即每次都猜測爲正例,因此結果不是真正例就是假正例
若爲真正例,則上移單位;若爲假正例,則右移單位
這恰恰說明了爲什麼橫軸表示FPR而縱軸表示TPR
經過(+)次猜測就得到了從(0,0)到(1,1)的折線ROC
對每個點做關於x,y軸的直線將該區域分成×塊小矩形
研究ROC曲線之上面積就等同於計算有多少個小矩形

實例簡析:樣本總數有20個,其中爲10,爲10
                 那麼整個1×1的區域被分爲10×10=100個小矩形,每個小矩形面積0.1×0.1=0.01
                 一共上移及右移次數爲10+10=20次,這也正好吻合了20個樣本總數

下圖總結了上述關於ROC的重點知識

2.2.5 代價敏感錯誤率和代價曲線

之前介紹的性能度量大都隱式地假設了均等代價,如錯誤率是直接計算錯誤次數,而沒有考慮不同錯誤所造成的不同後果。
爲衡量不同錯誤類型所造成的不同損失,可爲錯誤賦予“非均等代價”(unequal cost); 在非均等代價下,我們不再簡單地希望最小化錯誤次數,而是最小化總體代價。

二分類代價矩陣

 犯不同的錯誤往往會造成不同的損失,此時需考慮“非均等代價”(unequal cost)

代價敏感(cost-sensitive)錯誤率公式:

回顧錯誤率公式:

區別:錯誤率,均等代價,ROC曲線
           代價敏感錯誤率,非均等代價,代價曲線

代價曲線
 

代價曲線與總體期望代價

 

2.3 比較檢驗

在某種度量下取得評估結果後,是否可以直接比較以評判優劣?       
 NO !  因爲:    •  測試性能不等於泛化性能       
                         •  測試性能隨着測試集的變化而變化          
                         •  很多算法本身一定的隨性
 

前面講述的是實驗評估方法和性能度量,但是單憑這兩個就相對學習器進行性能評估還是不夠的,原因在於: 1. 我們要評估的是學習器的泛化能力,而通過實驗評估方法得到的是測試集上的性能,兩者的對比結果可能未必相同。測試集上的性能與測試集的選擇有很大的關係。 2. 不同的測試集測試結果不一樣。 3. 很多學習器本身具有隨機性,運行多次結果也會不同這裏。 我們可以運用統計假設檢驗(hypothesis test)來佐證我們的性能評估結果。例如,我們在測試集上觀察到學習器A性能優於學習器B,則基於統計假設檢驗結果我們可以推斷出A的泛化性能是否在統計意義上優於B,以及這個結論的把握有多大。

3 本章總結

泛化誤差可分解爲偏差、方差與噪聲之和。      
偏差-方差分解說明,泛化性能是由學習算法的能力、數據的充分性和學習任務本身的難度所共同決定的。      
給定學習任務,爲了取得較好的泛化性能,需使方差較小(即使得數據擾動產生的影響小),需使偏差較小(即能夠充分擬合數據)      
由泛化誤差的分解可以看出,我們只需使得偏差和方差都儘量小即可獲得較優的泛化性能。但是,一般來說,偏差和方差是有衝突的(不考慮噪聲,偏差很大可以認爲是欠擬合引起的;方差很大可以認爲是過擬合引起的),即偏差-方差窘境。


歡迎留言,一起學習交流~~~

感謝閱讀

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章