1. 程式人生 > >資料集劃分為訓練集和測試集的幾種常見做法

資料集劃分為訓練集和測試集的幾種常見做法

在訓練過程中,我們往往需要將資料集D劃分為訓練集S和測試集T在閱讀了周志華老師的《機器學習》後,下面將介紹幾種常見的做法:

1.留出法

直接將資料集D劃分為兩個互斥的的集合,其中一個集合作為訓練集S,另一個作為測試集T,即D=S∪T, S ∩ T = 空集。

2.交叉驗證法

將資料集D劃分為k個大小相似的互斥子集,即D=D1∪D2∪…∪Dk,Di ∩ Dj = 空集(i ≠j) 每個子集Di都儘可能保持資料分佈的一致性,即從D中通過分層取樣得到。然後,每次用k-1個子集的並集作為訓練集,餘下的那個子集作為測試集;這樣就可獲得k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值。

3.自助法

給定包含m個樣本的資料集D,我們對它進行取樣產生資料集D':每次從D中挑選一個樣本,將其放入D',然後再將該樣本放回初始資料集D中;這個過程重複執行m次後,我們就得到了包含m個樣本的資料集D'.