訓練測試樣本划分


在離線建模環節,需要對模型進行評估,這就需要對總樣本進行划分,一部分用於訓練,模型從訓練集學習規則,一部分用於測試,檢驗模型的泛化能力。

下面介紹幾種樣本划分方法。

 

留出法

方法:將樣本集 D 分成兩個互斥的樣本集合,訓練集為S,測試集為T,S∩T=Ø,SUT=D

這種方法非常簡單,但不能充分利用數據訓練模型,而且樣本划分對模型效果影響很大。

a. 只利用了部分數據訓練模型,得到的模型很可能和全量數據D得到的模型偏差很大,訓練集越小,偏差越大

b. 如果訓練集較大,測試集較小,則模型可信度降低

c. 划分前后數據分布不同,比如總樣本1500正1500負,划分后,測試樣本50正950負,這顯然會影響模型的效果。

樣本集划分數量會導致模型偏差,通常做法是 2/3做訓練集,1/3做測試集;

類別分布不同也會影響模型效果,可采用分層抽樣的方法,特別是類別不均衡問題;

鑒於留出法的不確定性,可進行多次留出法實驗,最終取平均值

 

適用場景:樣本具有明顯的時間序列因素

如 6月需要訓練模型,可拿1-4月作為訓練集,5月作為測試集    

 

交叉驗證

這是最常用的方法,老生常談了,直接貼圖片吧

交叉驗證明顯比留出法更復雜,

當k=2時,其仍不同於留出法,因為留出法是1個訓練集,而交叉驗證是2個訓練集;

當k=n,n為樣本數,此時測試集為一個樣本,這稱為留一法,(Leave-One-Out,LOO)

  // 這種方法訓練n個模型,每個模型基本用到全部數據,接近“真實”模型;

  // 但是n很大時,其計算量太大;故n不能太大

 

另外,

交叉驗證在處理類別不均衡問題時,也采用了分層采樣的方式,即對每個類進行 k折划分;

由於交叉驗證在划分時也帶有隨機性,可能產生不穩定現象,故可進行多次交叉驗證;

 

自助法

自助法(bootstrapping) 以自主采樣(bootstrap sampling)為基礎,采用有放回重復抽樣的方式構建訓練集、測試集。

比如D中有m個樣本,每次從中隨機拿一個,存入訓練集,然后放回D中,下次再從D中隨機拿一個,存入訓練集...最終產生m個樣本的訓練集

當然訓練集中可能有重復的樣本,有些樣本被多次選中,也有些樣本從未被選中,沒被選中的作為測試集

樣本在m次采樣中從未被選中的概率為  (1-1/m)m,取極限

也就是說測試集大概占總樣本的0.368,大概1/3,

這種測試結果,稱為“包外估計

 

自助法在數據集較小,且難以有效划分訓練/測試時很有用,而且自助法能從數據集中產生多個訓練集,很適合集成學習,隨機森林用的就是自助法;

自助法產生的訓練集改變了數據分布,這會引入估計偏差;

所以在數據量足夠時,優先選擇 留出法和交叉驗證。

 

 

最后需要注意一點,盡管我們在模型訓練時用的部分樣本,但是當經過測試集調試,模型參數固定時,需要重新在整個數據集上訓練該模型,這個模型才是最終需要交付的模型。【請注意】


免責聲明!

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



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