自助法(Bootstraping)


自助法(Bootstraping)是另一種模型驗證(評估)的方法(之前已經介紹過單次驗證和交叉驗證:驗證和交叉驗證(Validation & Cross Validation))。其以自助采樣法(Bootstrap Sampling)為基礎,即有放回的采樣或重復采樣。(注:這是一種樣本內抽樣的方法,即將樣本看作總體並從中進行抽樣。)

 

具體做法是:在含有 m 個樣本的數據集中,每次隨機挑選一個樣本, 將其作為訓練樣本,再將此樣本放回到數據集中,這樣有放回地抽樣 m 次,生成一個與原數據集大小相同的數據集,這個新數據集就是訓練集。這樣有些樣本可能在訓練集中出現多次,有些則可能從未出現。原數據集中大概有 36.8% 的樣本不會出現在新數據集中。因此,我們把這些未出現在新數據集中的樣本作為驗證集。把前面的步驟重復進行多次,這樣就可以訓練出多個模型並得到它們的驗證誤差,然后取平均值,作為該模型的驗證誤差。

 

如果需要在多個不同的模型中進行選擇,那么事先留出測試集,然后在剩余的數據集上用自助法驗證模型,選擇驗證誤差最小的模型作為最好的模型,然后用訓練集+驗證集數據按最好模型的設置訓練出一個新的模型,作為最終的模型,最后用測試集測試最終的模型。

 

為什么原數據集中大概有 36.8% 的樣本不會出現在新數據集中?假設數據集中有m個樣本,那么每次每一個樣本被抽取到的概率是1/m,抽樣m次,某個樣本始終不被抽取到的概率是(1-1/m)m當m的取值趨近於無窮大時,樣本未被抽中的概率為e的負一次方 ,結果約等於0.368。

 

優點:訓練集的樣本總數和原數據集一樣都是 m個,並且仍有約 1/3 的數據不出現在訓練集中,而可以作為驗證集。

 

缺點:這樣產生的訓練集的數據分布和原數據集的不一樣了,會引入估計偏差。

 

用途:自助法在數據集較小,難以有效划分訓練集/驗證集時很有用;此外,自助法能從初始數據集中產生多個不同的訓練集,這對集成學習等方法有很大的好處。

 

總結:Bootstraping通過重復抽樣,避免了Cross Validation造成的樣本減少的問題。其次,Bootstraping也可以用於隨機創造數據。比如,隨機森林算法就是從原始訓練數據中,用bootstrap sampling的方法有放回地隨機抽取k個新的自助樣本集,並由此構建k棵分類回歸樹。但由於其訓練集有重復數據,這會改變數據的分布,因而導致訓練結果有估計偏差,因此這種方法不是很常用,除非數據量真的很少。

 

注:對於時間序列結構的數據,應采用block bootstrap。

 


免責聲明!

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



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