自助法(bootstrapping)劃分數據集

一、前戲

在將數據集劃分爲訓練集和測試集時,測試樣本應從真實分佈中獨立同分布採樣獲得;同時測試集應該儘可能與訓練集互斥,也就是測試樣本儘量不要在訓練集中出現、未在訓練過程中使用過。

多數情況下采用留出法(hold-out),即從數據集中分層採樣(stratified sampling)出約30%的數據作爲測試集。分層採樣的目的是要保持數據分佈的一致性,避免劃分過程引入額外的偏差。

在留出法中因爲保留一部分樣本用於測試了,導致訓練的樣本就少了。數據集的規模大點還好,當數據集比較少時,這樣劃分的方法就會浪費寶貴的數據資源。所以有什麼方法能避免訓練樣本減少的影響,同時還能比較高效測試模型訓練的好壞呢?


二、正題

“自助法”(bootstrapping)以自助採樣(可重複採樣、有放回採樣)爲基礎。

假如一個數據集D有m個樣本,看看訓練集和測試集怎麼選擇:

  • 訓練集D':每次從數據集D中隨機選擇一個樣本,將這個樣本複製一個放到D'中,然後再把原樣本放回去(可放回)。重複操作m次。這樣D'中就有m個樣本了。這種採樣方法有可能一個樣本會被選擇好多次,也有可能有的樣本一次也不會被選擇到。
  • 測試集D-D':測試集就是那些剩下的,沒被選擇的樣本。

那麼訓練集D和測試集D'中共有多少數據呢?

可以看出數據集中樣本在m次始終不被採樣到的概率是(1-\frac{1}{m})^{m},取極限得:

                                            \lim_{m\rightarrow \propto }(1-\frac{1}{m})^{m}=\frac{1}{e}\approx 0.368

所以數據集D中有36.8%的樣本未出現在訓練集中。

優缺點:

  • 數據集小、難以劃分訓練\測試集
  • 自助法能從初始數據集中產生多個不同的訓練集,可以用於集成學習
  • 自助法產生的訓練集改變了初始數據集的分佈,會引入估計偏差

 

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