引言
對於模型的評估與選擇,我們可以通過實驗測試來對學習器的泛化誤差進行評估並對模型進行選擇,因此我們需要一個測試集來測試學習器對沒有見過的新樣本的判別能力,並且用學習器在該測試集上的測試誤差作為泛化誤差的近似。
測試集應該儘可能與訓練集互斥,也就是說測試集中的樣本儘量不在訓練集中出現,也就是儘量不在訓練過程中被使用過。
為什麼?舉個例子。在大學的期末考試中,老師會選擇用平時的作業題來作為期末考試題。如果期末考試題中作業題佔了很大一部分,那麼這樣的期末考試題對於評估大家學習的效果是不理想的,努力的人和摸魚的人的成績差別不大,雖然看似是種雙贏的結果,但對於選拔人才其實是不利的,因為平時努力的人更具有舉一反三的能力,即便不是作業題,他們能夠做出來的概率也很高。對於評估分類器也是如此。如果測試樣本被用作訓練,得到的結果是“樂觀的”,並不能很好的區分學習器的泛化能力。
但是我們只有一個包含m個樣本的訓練集D,既要訓練,又要測試,那麼如何才能做到這一點呢?其實很容易想到,對D進行適當處理,分出測試集T和訓練集S。接下來介紹幾種常見的劃分測試集和訓練集的方法。
留出法(hold-out)
留出法直接將資料集D劃分為兩個互斥的集合:訓練集S與測試集T。滿足\(S∪T=D\),\(S∩T=Ø\)。用S訓練模型,用T評估誤差作為對泛化誤差的估計。
Note:
- 訓練集和測試集的劃分要儘可能保持資料分佈的一致性。在分類任務中,至少要保持樣本的類別比例相似。從取樣角度來說,保留類別比例的取樣方式稱為分層取樣。例如測試集中正例和反例的比例是2:1,那麼訓練集和測試集中正例和反例的比例都要是2:1。
- 即便給定了樣本比例後,仍然存在多種方式對資料集D進行劃分,比如1000個正例中要分到訓練集中700個,分到測試集中300個,但這700個和300個具體是哪些?這樣不同的劃分會導致不同的訓練集\測試集。一般採用若干次隨機劃分、重複實驗評估取平均值作為留出法的評估結果。
窘境:
- 若訓練集S包含絕大多數樣本,則訓練出的模型更接近於直接用D訓練出的模型,但由於T較小,評估的結果可能不夠穩定準確,我們說此時評估結果的穩定性差。
- 若測試集T多包含一些樣本,則測試集S和訓練集D差別就會增大,被評估模型與用D訓練出的模型可能有較大差別,我們說此時評估結果的保真性差。
常用比例:
訓練集和測試集大小的比例沒有完美的解決方案,常見的做法是將約2/3至4/5的樣本用於訓練,其餘用於測試。例如訓練集:測試集=7:3。
交叉驗證法(cross validation)
交叉驗證法先將資料集D分為k個大小相似的互斥子集。每個子集\(D_i\)都儘可能與整體資料集D保持資料分佈的一致性,即從D中分層取樣。
這樣劃分得到k個互斥子集後,則進行k次訓練和測試。每次訓練取k-1個子集,合起來作為訓練集,剩下的那1個子集用作測試集;一共有k種取法。k次訓練則是用這k種取法劃分的k種訓練集和測試集。最終返回k個測試結果的平均值。
Note:
交叉驗證法評估結果的穩定性和保真性很大程度上取決於k的取值。k常用的取值是10,又稱10折交叉驗證。
與留出法類似,交叉驗證法對於具體k個子集中有哪些樣本同樣存在多種劃分。k折交叉驗證通常要隨機使用不同的劃分重複p次,最終的評估結果是這p次k折交叉驗證結果的均值,例如常見的10次10折交叉驗證。
留一法
如果交叉驗證法中的k等於資料集D的大小m,那麼就得到交叉驗證法的一個特例,又稱為留一法。
留一法中被實際評估的模型與期望評估的模型很相似,留一法的評估結果往往被認為較準確。
缺陷:
- 資料集較大時,訓練m個模型的計算開銷太大。
- 留一法的估計結果未必永遠比其他評估方法準確。
自助法(bootstrapping)
自助法以自主取樣法為基礎。
具體做法:
給定m個樣本的資料集D,從D中進行m次隨機取樣,每次取樣後均放回。於是得到新的資料集D'。D'中存在重複資料。但資料集D和新的資料集D'的大小均為m。
D中有一部分樣本會在D'中重複出現,另外一部分樣本不會出現。我們知道在一次隨機抽樣中,m個樣本中抽中某個樣本的概率為\(\frac{1}{m}\),那麼不被抽中的概率為\(1-\frac{1}{m}\)。由二項分佈,m次獨立取樣中某樣本一直不被抽中的概率為\((1-\frac{1}{m})^m\)。
對上式取極限:
也就是說,通過自主取樣,一個樣本始終不出現在D'中的概率大約是0.368,由於D的大小為m,我們可以得到D中大約有0.368 * m個樣本始終不會出現在D'中。
於是,我們用D'作為訓練集,而\(D-D'\)作為測試集。
優點:
自助法在資料集較小、難以有效劃分訓練集和測試集時很有用。
缺點:
自助法產生的資料集改變了原始資料集的分佈,這會引入估計偏差,因此,在原始資料集D的大小足夠大時,留出法和交叉驗證法更常用。
參考資料:
周志華-西瓜書