標籤:

機器學習讀書筆記:模型評估與選擇

一、概率與分布基礎知識

1、二項分布:貝努力實驗:在n次貝努里試驗中,我們導出了事件A出現k次成功的概率為b(k;n,p):

二項分布的概率函數

其中q=1-p

b(k;n,p), k=0,1,2,...,n稱為二項分布。

eg:一個抽獎模塊是這樣的,產品制定了一次抽獎獲得極品裝備的概率為0.03,那麼抽取100次獎勵獲得不超過5個極品裝備的概率p為多少?

答案是: sum_{i=1}^{5}{b(k;n,p)} ,即:

參考:二項分布 - MBA智庫百科

2、置信區間置信水平(度),eg:假設概念,我有95%的把握認為我的身高處於[1.71, 1.75]範圍(例子好扯淡)。

3、α值(顯著性水平(度))、臨界值(x軸):正態分布(其他分布同樣)臨界值之後的x軸與曲線部分的陰影部分的積分求面積就是顯著性水平α。顯著的意思是,觀察值顯著的不合理區間,

常用的顯著性水平α值是0.05(雙側)和0.1(單側),這是業界約定俗成的一個經驗值,一般查表都依據這個值。

4、正態分布:鍾型曲線,是概率密度函數曲線,y軸是概率,x軸是隨機變數的可能取值,計算概率的話,只能計算一個區間的概率(曲線上表示是面積積分: int_{a}^{b} f(x)dx)。

參考:統計基礎篇之十二:怎麼理解正態分布(一)系列文章

5、假設檢驗

總體未知,那麼只能通過抽樣來預估總體,且對預估的結果進行顯著性檢驗;

假設檢驗的思想,是從原假設為真的前提出發,運用反證法來判斷原假設是否確實為真(接受假設、拒絕假設)。

要想對假設做檢驗,那麼首先必須對總體進行抽樣,例如:假設泛化錯誤率=測試錯誤率,那麼總體肯定是未知的,因此泛化錯誤率是未知的,只能通過對總體抽樣出測試樣本集,算出測試錯誤率,用測試錯誤率來評價泛化錯誤率啦。

假設與檢驗分開理解,檢驗依賴正態分布、二項分布等概率分布來推估原假設是否合理,具體是使用p值(觀察值(當前隨機變數的取值)最差情況:即觀察值以及比觀察值更偏離原假設的概率(是一個區間的概率密度函數的積分或離散隨機變數的級數))與顯著水平α值的比較;另外一種評價原假設拒絕或接受的方式是(最簡單常用)通過比較x軸上觀察值與臨界值的位置;

假設檢驗的步驟非常簡約(九字經):做假設、定分布、算p值。

一般而言,檢驗(T檢驗、F檢驗等)是為了確定從樣本統計結果 推論至 總體時所犯錯的概率,我們會利用統計學家所開發的一些統計方法,進行統計檢定。通過把所得到的統計檢定值,與統計學家建立了一些隨機變數的概率分布(probability distribution)進行比較,我們可以知道在多少%比例的機會下會得到目前的結果。倘若經比較後發現,出現這結果的機率很少,亦即是說,是在機會很少、很罕有的情況下才出現,那我們便可以有信心的說,這不是巧合,是具有統計學上的意義的(用統計學的話講,就是能夠拒絕虛無假設null hypothesis,Ho)。相反,若比較後發現,出現的機率很高,並不罕見;那我們便不能很有信心的直指這不是巧合,也許是巧合,也許不是,但我們沒能確定。

F值和T值就是這些統計檢定值,與它們相對應的概率分布,就是F分布和T分布。統計顯著性(α)就是出現目前樣本這結果的機率。

6、p值

是指當原假設為真時所得到的樣本觀察結果或更極端結果出現的概率,p值越小,我們拒絕原假設的概率越充分,也就是說,p值越小,表明結果越顯著。

P值與alpha值都是概率,即正態分布密度函數鐘形曲線圖上的面積。

p值在正態(類正態)分布曲線上也是一個積分面積。

有一個傻瓜式的結論是:p值小於0.05就拒絕,p值大於0.05就接受原假設(這裡再次強調,正態分布曲線圖是概率密度函數,x軸是隨機變數的連續取值,曲線表示的並不是概率,而是一個分布趨勢,如果要得到概率,則是針對一個區間返回[a, b]的積分面積)。

p值用于衡量樣本均值偏離假設的程度,

在連續數據的分布密度函數中,具體某一個值的概率是0,要想計算概率,必須給定一個區間,計算概率密度曲線在這個區間內的面積(積分)。p值的計算也是要給定一個區間的,這個區間就是大於和小於樣本均值的概率,以此來衡量觀察值是否不合理甚至更不合理。

參考如下:zhuanlan.zhihu.com/p/26

7、樣本推估全體--統計學的基本思想

8、概率密度函數:連續型隨機變數,只能求一個區間的概率,不能求單隨機變數取值的概率,因為有無限多個,所以是0,不合理;因為離散型隨機變數的概率分布通常是有限取值,可以每個取值 x_{i} 及其對應的概率P( x_{i} )列表進行展示,但連續型隨機變數在有限區間內具有無限取值,如果要像離散型隨機變數的概率分布那樣列表一一對應,有無限個,那就就沒完沒了,用積分極限小的思想來看,連續型隨機變數某一取值對應的概率,相比其餘無窮多的取值,微乎其微,非常小,小到無窮小,只能為0。

因而,對於連續型隨機變數,單一點 x_{i} 所對應的函數f( x_{i} )是概率密度,而不是概率。連續型隨機變數的概率,只能是在某一區間範圍內的概率(也就是概率密度曲線底下的面積、概率密度函數的定積分),而不是某一點的概率,如下圖所示(連續型:概率=密度的積分):

連續型隨機變數的概率是:一個區域的定積分(面積),一般使用概率密度函數的圖譜

9、概率與統計,形象的體現在隨機變數取值與當前取值的概率分布圖上(這個概念對於連續型隨機變數不合理,連續型隨機變數的最小x軸刻度是區間)。

10、t檢驗

應用場景:總體樣本容量較少(<30),總體方差未知(可以用採樣的樣本方差代替),用於比較樣本均值(一般是多次採樣求均值)與總體均值之間的差異情況(度)。

一般用於多次採樣求均值差異。總體方差已知的話,直接正態分布,用Z檢驗。

t檢驗過程,是對兩樣本均數(mean)差別的顯著性進行檢驗

假設檢驗的方法之一,也叫學生Student檢驗,主要用於樣本含量較小(例如n<30),總體標準差σ未知的正態分布資料,它是用t分布理論來推斷差異發生的概率,從而判定兩個平均數的差異是否顯著,例如:假設學習器泛化錯誤率(均值)<=測試錯誤率(多次樣本採樣的均值)

t檢驗分為單總體檢驗雙總體檢驗

(1)單總體t檢驗是檢驗一個樣本平均數一個已知的總體平均數差異是否顯著。當總體分布是正態分布,如果總體標準差 sigma 未知樣本容量<30,那麼樣本平均數總體平均數的離差統計量(離差也叫差量,是單項數值與平均值之間的差)呈t分布。

單總體t檢驗統計量為:

其中:

t為樣本平均值與總體平均值的離差統計量

ar{X} 為樣本平均值

mu 為總體平均值

sigma_{x} 為樣本標準差:這裡因為總體標準差未知,使用樣本的標準差

n為樣本容量

舉個例子:總體均值是10,樣本均值是10.5,樣本方差(注意這裡是樣本方差,總體方差是未知的)為1,採用樣本容量是10。

計算t-檢驗的統計量:

根據這個t值和自由度(查表),我們可以算出p值,見下圖。

p值:p=2×0.07417=0.14834

注意p值與α是有本質區別的,p值是根據樣本計算出來的,而α是事先定好的判斷標準,α定了,拒絕域也就確定了,要注意拒絕原假設的條件是p值小於α。這裡還可以比較t與臨界值,如果t<臨界值,表示假設成立,可接受。

t分布定義(來自維基百科):在概率論和統計中用於根據小樣本來估計呈正態分布,總體方差未知的總體的均值。如果總體方差已知(例如在樣本數量足夠多時),則應該用正態分布來估計總體均值。它是對兩個樣本均值差異進行顯著性測試的學生t檢驗的基礎。

自由度:v=n - 1,通過自由度v和顯著性水平α(α一般取值是0.05(雙側檢驗)或0.1(單側檢驗)),查界值表,確定p值,然後與顯著水平α比較,大於α則接受假設;<α則拒絕假設;

適用條件:已知一個總體均值,可得到一個樣本均數及該樣本標準差,樣本來自正態或近似正態總體。

目的:比較樣本均值,所代表的未知總體均值 mu 和已知總體均值 mu_{0}

(2)雙總體t檢驗是檢驗兩個樣本平均數與其各自所代表的總體的差異是否顯著。雙總體t檢驗又分為兩種情況,一是獨立樣本t檢驗,一是配對樣本t檢驗。

(2.1)獨立樣本t檢驗統計量為:

步驟:

  • 建立假設、確定檢驗水準α(即:顯著水平α,一般取值0.05、0.1)
  • 計算檢驗統計量t值
  • 查相應界值表,確定P值,下結論

參考資料:

T檢驗 - MBA智庫百科

T檢驗分析

統計學常用概念:T檢驗、F檢驗、卡方檢驗、P值、自由度 - CSDN博客

關於顯著性檢驗,你想要的都在這兒了!!(基礎篇) - Mario-Chao - 博客園

11、比較分析

所謂比較分析,就是使用假設檢驗原理,通過抽樣,對總體的某些參數(常用均值或方差)進行比較,得出因子的不同狀態對結果是否產生顯著影響。比較對象可以是連續數據,也可以是離散數據。這種比較只給出「是」與「否」的結論,不試圖給出具體的差異值。

參考:經典比較篇之一:為什麼要做比較分析?

連續數據而言:正態分布

離散數據而言:二項分布、泊松分布

12、卡方分布(chi^{2} 分布)

n個服從標準正態分布的隨機變數的平方和構成一新的隨機變數,其分布規律稱為卡方分布。

Q = sum_{i=1}^{n}{x_{i}^{2}} ,這個新的隨機變數Q的所有取值的概率分布,就叫卡方分布(chi^{2} 分布)。

應用場景待補充!!!!!

13、F檢驗

F檢驗,最常用的別名叫做聯合假設檢驗,此外也稱方差比率檢驗方差齊性檢驗,從名字可以看出這貨跟方差有關,它是一種在零假設(null hypothesis, H0)之下,統計值服從F-分布的檢驗。

方差分析(ANOVA)又稱「變異數分析」或「F檢驗"。用於兩個及兩個以上樣本均數差別的顯著性檢驗。

適用場合:

(1)假設一系列服從正態分布的母體,都有相同的標準差。這是最典型的F檢驗,該檢驗在方差分析中也非常重要。

(2)假設一個回歸模型很好地符合其數據集要求。

14、Z檢驗

Z檢驗是一般用於大樣本(即樣本容量大於30)平均值差異性檢驗的方法,它是用標準正態分布的理論來推斷差異發生的概率,從而比較兩個平均數的差異是否顯著。

當已知總體標準差已知時,驗證一組數的均值是否與某一期望值等時,用Z檢驗。

統計檢驗是先對總體的分布規律作出某種假說,然後根據樣本提供的數據,通過統計運算,根據運算結果,對假說作出肯定或否定的決策。

適合總體容量比較大規模、且服從正態分布的情況。

假設檢驗的步驟是:

(1)建立虛無假設,即先認為兩者沒有差異,用 H0:μ1 = μ2 表示;

(2)通過統計運算,確定假設 H0 成立的概率 P。

(3)根據 P 的大小,判斷假設H0是否成立,其實就是跟顯著性水平α進行比較。

參考:假設檢驗原理三: F 檢驗 | AlgorithmDog

Z檢驗 - MBA智庫百科

15、零假設

在概率統計中,零假設或虛無假設(英語:null hypothesis)是做假設檢驗時的一類假設。零假設的內容一般是希望能證明為錯誤的假設,或者是需要著重考慮的假設。與零假設相對的是備擇假設對立假設,英語:alternative hypothesis),即希望證明是正確的另一種可能

二、模型評估三要素

1、評估方法

通常會把數據集合劃分為訓練樣本集測試樣本集,訓練集用於訓練模型(學習器),測試集用於評估驗證模型優劣。泛化性能基本不可能直接獲取,所以一般使用測試集的測試性能來近似泛化性能。

獨立同分布:就是字面意思:獨立採樣,且服從相同分布。這裡表示假設測試樣本集T與訓練樣本集S都是從全體樣本集D中獨立採樣得到(當然這是理想情況)。

評估方法的目的是:從全體數據集D中採樣(分裂)得到訓練集S和測試集T。

1.1、留出法

互斥:S cap T = phi

並集是全體:S cup T = D

S作為訓練集用於訓練模型(學習器);T用於測試評估使用S訓練處的學習器模型優劣。

關鍵點是:S和T的劃分要儘可能保持數據分布的一致性,避免因數據劃分過程引入額外偏差而對最終結果產生影響。----這個比較難以確定。

S和T的劃分比例也難以確定,若S包含絕大多數樣本,則訓練出的模型可能更接近與用D訓練出的模型,但因為T比較小,使用T評估時,結果可能不夠穩定準確;若T多包含一些樣本,則訓練集S與D差別就更大了,被評估的學習器模型與用D訓練出的學習器模型相比可能有較大差別,從而降低了評估結果的保真性。

1.2、交叉驗證法(K折交叉驗證法、p次k折交叉驗證法)

「交叉驗證法」先將數據集D劃分為k個大小相似的互斥子集:

D=D_{1}cup D_{2} cup ...... cup D_{k}D_{i}cup D_{j} = phi (i != j)

每個子集D_{i}儘可能保持數據分布的一致性(wtf,比較難)。每次用k-1個子集的並集作為訓練集,餘下的那個子集作為測試集,總共需要進行k次訓練/測試,然後對這k次預測結果求均值。可以看到這個k次劃分的取值,直接影響評估結果的穩定性和保真性。所以也叫「k折交叉驗證」。k的取值通常是10,也有5和20的等,如下圖所示,

與留出法同樣的缺點是:數據集D劃分為k個子集的方式同樣有多種。為了減小因樣本劃分不同而引入的差別,k折交叉驗證法通常要隨機使用不同的劃分重複p次,最終的評估結果是:p次k折交叉驗證結果的均值,綜合考慮到模型開銷,常見的是10次10折交叉驗證。

k折交叉驗證法,還有個關於偏差和方差性質是:

(1) 當k值大的時候, 我們會有更少的Bias(偏差), 更多的Variance(方差)。

(2) 當值小的時候, 我們會有更多的Bias(偏差), 更少的Variance(方差)。

1.3、自助法

自助法比較適合數據規模(樣本數量)較小,難以有效劃分訓練/測試集時使用。

我們希望的是評估的是用D訓練出的模型。但在留出法交叉驗證法中,由於保留了一部分樣本用於測試,因此實際評估的模型所使用的訓練集比D小,這必然會引入一些因訓練樣本規模不同而導致估計偏差。留一法受訓練樣本規模影響較小,但計算複雜度又太高了(實際上很少使用,經常使用的是10次10折交叉驗證方式)。有沒有什麼辦法可以減少訓練樣本規模不同造成的影響,同時還能比較高效進行試驗評估呢?

「自助法」是一個比較好的解決方案。採用「自助採樣法」為基礎,給定包含m個樣本的數據集D,我們對它進行採樣產生數據集D』:每次隨機從D中挑選一個樣本,並將其拷貝放入D』中,然後再將該樣本放回數據集D中,使得該樣本在下次採樣時仍有可能被採到;這個過程重複執行m次後,我們得到了包含m個樣本的數據集D』,這就是我們自助採樣的結果。我們將D』作為訓練集,將D-D『(集合減法)作為測試集。

因此可以看出,自助法在數據集較小、難以有效劃分訓練/測試集時很有用;此外,自助法能從初始數據集中產生多個不同的訓練集,這對集成學習等方法有很大的好處然而,自助法產生的數據改變了初始數據集的分布,這會引入估計偏差。因此,在初始數據量足夠是,留出法和交叉驗證法更常用一些

2、性能度量

2.1、均方誤差

回歸任務中最常用的性能度量:

學習器(模型)期望輸出值與實際值之差的平方和再求平均,這裡注意與均方差不同

2.2、錯誤率與精度

錯誤率和精度分類任務中算是最常用的兩種性能量度方式了。

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

m表示總體樣本容量

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

m表示總體樣本容量

2.3、查准率、查全率與F1

主要針對「二分類」問題可將樣例根據其實際類別學習器預測類別的組合劃分為真正例(true positive,TP)、假正例(false positive,FP)、真反例(true negative,TN)、假反例(false negative,FN)四種情況,組成「混淆矩陣」,如下圖所示:

查准率P與查全率R分別定義為:

查准率Precision、查全率Recall

查准率的解釋是:模型預測結果為正例的結果中,真正是正例的比例;

查全率的解釋是:總體數據中的真實正例中,模型預測結果命中的比例;還可以這麼表示:總體數據中的正例,有多少比例被模型預測正確的比例;

由解釋可以得到,明顯查准率和查全率都是正面的意義,即期望它們同時優秀。這是一個綜合指標。查准率P和查全率R又是一對矛盾的度量,一般來說,查准率高時,查全率低,反之依然。

可以根據模型(學習器)的預測結果,對樣本進行排序,從最可能是正例到最不可能是正例進行排序,按照此排序逐個把樣本作為正例進行預測(每次都有各自對應的「混淆矩陣」),則每次可以計算出當前的查准率P和查全率R(根據當前的「混淆矩陣」,按照公式計算得到),以查准率P為y軸,查全率R為x軸,得到P-R曲線,如下所示:

就P-R曲線圖來看,最優解是:查准率P和查全率R的數據都優秀才行,這是一個綜合指標(wtf)。也就是說P-R許可權圖的面積越大肯定是越好。也就是說被擁有包含關係的P-R曲線中前者包含者一定好於後者被包含者的性能;如果曲線有交叉,那麼還是計算P-R曲線的面積,大的更優秀。But,這個「雙高」的面積還真不好求,那麼為了綜合考慮查准率、查全率的性能度量。「平衡點」(Break-Even Point,簡稱BEP)就是這樣一個度量被提出用於評估P-R曲線誰更優秀,它是查准率P=查全率R時的取值。But,wtf又But,BEP過於簡化,更常用的的是F1度量。F1度量是基於查准率P和查全率R的調和平均定義的:

1/F1 = 1/2 * (1/P + 1/R)。

在一些應用中,對查准率和查全率的重視程度有所不同。從而有了F1度量的一般形式 F_{eta},是加權調和平均:

1/F_{eta}= 1 / (1+ eta^{2} ) * (1/P + eta^{2} /R)

係數β>1時查全率有更大影響;β<1時,查准率有更大影響。

注意:調和平均數,又稱倒數平均數,是總體各個統計變數算數平均數的倒數,又分為簡單調和平均數和加權調和平均數。

很多時候我們有多個二分類混淆矩陣,我們希望在n個二分類混淆矩陣上綜合考察查准率和查全率。目前有兩種方法:

  • 」宏查准率(macro-P)「、」宏查全率(macro-R)「、及相應的宏F1(macro-F1)
  • 」微查准率(micro-P)「、」微查全率(micro-R)「、及相應的微F1(micro-F1)

2.4、ROC與AUC

ROC曲線是一個比P-R曲線更常用,更穩定的性能度量指標。是基於樣本排序本身質量的好壞為出發點,來研究學習器泛化性能的。

性能度量的重點是:P-R曲線圖、ROC(AUC)曲線圖

ROC比P-R優秀的地方是:穩定(壓倒一切)

兩者相同點是,都是基於學習器模型預測結果對樣本進行排序(最可能正例排在前面,最不可能排在後面),然後逐個把樣本作為正例進行預測(每次都會生成對應的「混淆矩陣」,再進行計算得到真正例率和假正例率。作P-R圖、ROC圖就靠這個「混淆矩陣」每次的計算得到坐標值,然後連接相鄰兩個坐標點形成的曲線),y軸是真正例率TPR,x軸是假正例率FPR:

TPR解釋是:總體數據中的全部正例,有多少被學習器預測的正例中,真正預測到。

FPR解釋是:總體數據中的全體反例,有多少被學習器預測的正例中,被預測錯誤(預測成正例)。

由解釋可以得到,TPR數據越高越好,FPR越低越好,從ROC曲線上來看,越靠近y軸越好(即:越靠近ROC曲線的左上角越好)。

顯示ROC的曲線圖:

進行學習器比較時,與P-R如相似,若一個學習器的ROC曲線被另一個學習器的曲線「包住」,則可斷言後者的性能優於前者;若兩個學習器的ROC曲線發生交叉,則難以一般性的斷言兩者孰優孰劣。此時如果一定要進行比較,則較為合理的判斷是比較ROC曲線下的面積,即AUC(Area Under ROC Curve),其實就是做積分求面積。

目的:評估學習器(模型)性能,比較優劣,但實際上,不能簡單的這樣比較,還需要配合假設檢驗來使用概率統計的方式進行評估。

這裡有兩個問題:

問題1:如何繪製ROC曲線

繪製過程有兩個:

其一:與繪製P-R先類似,針對模型預測結果從最可能正例到最不可能正例排序,然後假設一次以預測結果的樣本為正例,計算當前「混淆矩陣」,再計算當前TPR、FPR,然後等到坐標,最後連接相鄰坐標點,繪製得到ROC曲線圖。這需要注意的是,每一次假設正例時,都會到當前相應的一個新的「混淆矩陣」,使用這個矩陣,計算當前新的TPR和FPR。

其二:給定 m^{+} 個正例和 m^{-} 個反例,根據學習器模型預測結,對樣本進行排序,然後把分類閾值設置為最大,即把所有樣本均預測為反例,此時坐標為(0,0),然後,將分類閾值設為每個樣本的預測值,即以此將每個樣例劃分為正例,設前一個坐標為(x,y),當前如果是正例,則坐標點是(x, y+1/ m^{+} ),如果是反例,則坐標點是(x+1/ m^{-} , y),然後連接相鄰坐標點即可。

證明:當前如果是正例,則坐標點是(x, y+1/ m^{+} ),如果是反例,則坐標點是(x+1/ m^{-} , y)

設當前坐標為(x_{0} , y_{0}),那麼有:TPR = (TP)_{0} / m^{+} , FPR = (FP)_{0} / m^{-} ,則下一個坐標點的樣本如果是正例(在學習器模型預測結果的正例中,把真實反例預測為正例的佔比沒有變化),則:x=x_{0},不變為TPR = (TP)_{0} / m^{+} ;但是在學習器模型預測結果的正例中,把真實正例預測為正例的比例+1了,佔比發生了變化,即y= ((TP)_{0} +1)/ m^{+} = (TP)_{0} / m^{+} + 1/m^{+} = x_{0} + 1 / m^{+};反之,如果是反例,同樣的證明方式,證明略。

除了理解P-R曲線圖、ROC曲線圖之外,記住這兩個圖的樣子也是非常有幫助和效率的。

參考這裡:

機器學習之分類器性能指標之ROC曲線、AUC值 - CSDN博客

陳文龍:求問周志華機器學習一書中關於roc圖的繪製過程?

問題2:ROC比P-R曲線優秀的地方

當正例與反例改變是,ROC曲線形狀能夠基本保持不變,而P-R曲線的形狀會發生較劇烈的變動,也就是說,ROC曲線能夠盡量屏蔽測試集選擇帶來的干擾,能夠更客觀的衡量模型本身的性能。

2.5、代價敏感錯誤率與代價曲線

在現實任務中會遇到這樣的情況:不同類型錯誤所造成的後果不同。例如在醫療診斷中,錯誤的把患者診斷為健康人與錯誤的把健康人診斷為患者,看起來都是犯了「一次錯誤」,但後者的影響是增加了進一步檢查的麻煩,前者的後果卻可能是喪失拯救生命的最好時機。以二分類任務為例,我們可根據任務領域知識設定一個「代價矩陣」,如下圖所示,

在非均等代價下,ROC曲線不能直接反映出學習器的期望總體代價,而「代價曲線(cost curve)」則可達到目的。代價曲線圖的橫軸是取值為[0,1]的正例概率代價,

縱軸是取值為[0,1]的歸一化代價,

畫圖表示如下圖所示,

3、比較檢驗-假設檢驗

兩個問題:

問題1:假設檢驗的目的主要是評估學習器的性能優劣(雖然已經有了「性能度量」,但也不能簡單的說模型a就一定比模型b優秀,我們只能通過概率統計的方法來檢驗)。

問題2:泛化性能一般情況下是不可能得到的(誰也不知道真實生產環境全體數據的狀況),只能通過測試集的測試性能指標來推斷估計泛化性能,那麼怎樣推斷估計泛化性能與測試性能近似吶?這裡就用到了「假設檢驗」:

3.1、單個學習器,假設檢驗測試錯誤率可以估計泛化錯誤率:一次採樣,即單次獲取訓練/測試樣板集合

第1步:做假設:假設泛化錯誤率epsilon <= 測試錯誤率epsilon_{0} (實際上使用「均方誤差」更常用)

第2步:定分布:計算泛化錯誤率為 epsilon 的學習器(模型),要想得到其測試錯誤率為 epsilon_{0} 的概率,且這個概率符合二項分布,可以使用二項檢驗來檢驗 「第一步」 的假設是否成立?!

第3步:算p值:得到p值,查表α,比較,結果接受/拒絕原假設?!可以比較臨界值,可以比較p值與α值。

通過以上3步,來確定測試

3.2、單個學習器泛化性能假設檢驗:測試錯誤率推估泛化誤差(「均值誤差」 比錯誤率更加常用):多次留出法或k折交叉校驗法獲取訓練/測試樣本集合

這裡符合使用t檢驗的條件,樣本容量較少,總體方差未知,需要比較樣本與總體的均值。

上面3.1的二項分布檢驗、3.2的t檢驗都是針對單個學習器(模型)的泛化性能的假設(測試性能=泛化性能)進行檢驗,而還沒有說到,學習器(模型)性能比較,學習器性能的比較關鍵點是:

假設學習器A和學習器B性能相同,若不同,則測試錯誤率較小的那個學習器性能較優。

3.3、多個學習器性能比較

  • 交叉驗證t檢驗

學習器A和學習器B性能比較,使用k折交叉驗證法 + 成對t檢驗,假設 epsilon_{i}^{A} = epsilon_{i}^{B} 。即:假設A與B性能相同。

對A和B,分別做k折交叉檢驗,得到k對測試錯誤率,進而得到k個測試錯誤率的差值: Delta_{i} = epsilon_{i}^{A} - epsilon_{i}^{B} ,若A和B性能相同,則每一個差值 Delta_{i} 都是0,μ表示差值的均值,差值的方差是sigma^{2} ,使用t檢驗對差值的均值進行檢驗,小於臨界值即假設成立,可接受。

樣本獨立性在k折交叉檢驗時,並不能做到每次採樣(訓練集/測試集)的相互獨立(可能導致過擬合),導致過高估計假設成立的概率,採用5x2交叉驗證法,來緩解測試錯誤率的非獨立性。

  • McNemar檢驗

留出法 + 列聯表 + chi^{2} 分布(卡方分布)

上面兩個假設檢驗,都是在一個數據集上比較兩個演算法的性能(單數據集+多個演算法),很多時候,我們也會在一組數據集上對多個演算法、模型、學習器進行比較,即:多數據集 + 多個演算法,下面這兩個檢驗就是用於多數據集+多演算法比較的:

  • Friedman檢驗 與 Nemenyi後續檢驗

Friedman檢驗,基於演算法排序的檢驗(序值表,性能相同,則評分序值),基於序值的 chi^{2} 分布(卡方分布)。

若演算法性能相同這個假設被拒絕,則說明演算法的性能顯著不同,這個時候需要後續檢驗,常用的檢驗是Nemenyi後續檢驗。

3.4、偏差與方差分解

有了性能比較的假設檢驗來確認性能優劣,但我們還須知道模型、演算法、學習器為何有這樣的性能?!「偏差-方差分解」是解釋演算法性能的重要工具。

「均方差」 = 「標準差」是一個概念,都是方差的開根號值;

「均方誤差」 != 「均方差」,「均方誤差」是預測輸出與真實值之間的差值,均方差是預測輸出與期望(均值)之間的差值。「均方誤差」=「偏差」

期望泛化誤差公式:E(f;D) = bias^{2}(x) + var(x) + varepsilon^{2}

課件期望泛化誤差與偏差的平方、方差、雜訊有關。

bias偏差度量學習演算法的期望預測與真實結果的偏離程度,刻畫學習演算法本身的擬合能力;

var方差是數據離散程度的度量,刻畫了數據擾動所造成的影響;

雜訊刻畫了學習問題本身的難度。

偏差與方差分解,說明泛化性能是由學習演算法的能力、數據的充分性、以及學習任務本身的難度共同決定。

偏差-方差窘境:

訓練數據時,我們期望學習器(模型)從訓練集中儘可能的學習到普遍經驗(規律),但是有時候訓練過分好時,容易把訓練樣本集中的「個性化的」、自身的一些特點學習了,當做了一般性質,那麼就會出現過擬合問題(且實際應用中,這個問題一直是最常出現的問題),導致泛化性能下降;相對的,訓練不足時,即對訓練樣本一般的性質尚未學好時,是欠擬合狀態。

訓練前期,偏差bias主導泛化錯誤率;訓練程度充足時,方差主導繁華錯誤率;若訓練數據自身的、非全局特性(個性)被學習器學到了,則將發生過擬合。

參考資料:

機器學習中的Bias(偏差),Error(誤差),和Variance(方差)有什麼區別和聯繫?

方差、標準差、均方差、均方誤差區別總結 - CSDN博客


推薦閱讀:

【最優化】無約束優化方法-阻尼牛頓法
機器學習中的Optimal Transport及相關問題:(二)計算方法
NLP文本分類實戰: 傳統方法與深度學習
技術宅如何進化為女裝大佬
記第一次參加的數據挖掘比賽

TAG:機器學習 |