一、交叉驗證法
1.驗證集方法
將數據分爲 訓練集 和 驗證集。
2.留一交叉驗證法LOOCV
①將一個單獨的觀測(x1,y1)作爲驗證集,剩下的觀測 {(x2,y2), (x3,y3), … , (xn, yn)}組成訓練集。然後在n-1個訓練觀測上擬合統計學習方法,再對餘下的觀測根據它的值x1來做yih。MSE1 = (y1 - y1h)^2提供了對於測試誤差的一個漸進無偏估計。
②重複這個步驟n次,把(xi, yi)選做驗證數據,計算MSEi = (yi - yih)^2 。
對測試均方誤差的LOOCV估計是這n個測試誤差估計的均值:
CV(n) = 1/n sigmaMSEi
有時也可用最小二乘法來擬合線性或者多項式迴歸模型,公式爲:
CV(n) = 1/n sigma[(yi - yi h)/(1 - hi)]^2
其中hi爲槓桿值
留一交叉驗證法是一種十分常用的方法,可以在任何一種預測模型的建模過程中使用。
3.k折交叉驗證法
將觀測集隨機地分爲k個大小基本一致的組,或者折。第一折作爲驗證集,然後在剩下的n-1折上擬合模型。均方誤差MSE1由保留折的觀測計算得出。重複這個步驟k次,每一次把不同的觀測組作爲驗證集,整個過程會得到k個測試誤差的估計,MSE1,MSE2,…,MSEk。k折CV估計由這些均值平均計算得到。
注意:
①一般令k=5或k=10。
②k折交叉驗證法的測試誤差的波動比LOOCV的波動要小得多。