天天看點

交叉驗證的幾種驗證方法(Cross-Validation)

普通驗證方法:将原始資料分為訓練集和測試集兩部分,利用訓練集訓練分類器,然後利用測試集驗證模型,記錄分類準确率為分類器的性能名額。沒有真正做到交叉驗證,這樣做得到的準确率高低與原始資料的劃分有很大關系。

2折交叉驗證(2-fold Cross Validation)

将資料集分為兩個大小相等的子集,分别作為訓練集和測試集進行分類器的訓練。這樣做訓練樣本相對整體資料集過小,不足以代表整個樣本集。

K折交叉驗證(k-fold Cross Validation)

将原始資料分為k組,将其中一個子集資料分别做為測試集,其餘k-1組子集資料作為訓練集,這樣會得到k個模型,用這k個模型最終的測試集的分類準确率的平均數作為此K-CV下分類器的性能名額。可以有效的避免過拟合與欠拟合的發生。通常情況,k取5或10。

k越大,訓練集的資料越多,模型bias越小,但k越大意味着每一次選取的訓練集之前的相關性越大,這種相關性會導緻最終的測試誤差具有更大的方差。

一種極端情況——當k為樣本集的數量n時,即代表将資料集分為n份,每次取出一個資料作為測試集的唯一進制素,其他n-1個資料都作為訓練集用于訓練模型和調參。結果就是訓練n個模型,每次都能得到一個MSE。取其平均就是最終的test MSE。

交叉驗證的幾種驗證方法(Cross-Validation)

這就是LOOCV(Leave-one-out Cross Validation),它不受訓練集測試集劃分方法的影響,由于幾乎用到了所有的資料,保證了模型的bias更小,缺點就是計算量太大

繼續閱讀