交叉驗證(簡單交叉驗證、k折交叉驗證、留一法)


針對經驗風險最小化算法的過擬合的問題,給出交叉驗證的方法,這個方法在做分類問題時很常用:

一:簡單的交叉驗證的步驟如下:

1、 從全部的訓練數據 S中隨機選擇 中隨機選擇 s的樣例作為訓練集 train,剩余的 作為測試集 作為測試集 test。

2、 通過對測試集訓練 ,得到假設函數或者模型 。
3、 在測試集對每一個樣本根據假設函數或者模型,得到訓練集的類標,求出分類正確率。

4,選擇具有最大分類率的模型或者假設。

這種方法稱為 hold -out cross validation 或者稱為簡單交叉驗證。由於測試集和訓練集是分開的,就避免了過擬合的現象

二:k折交叉驗證 k-fold cross validation

1、 將全部訓練集 S分成 k個不相交的子集,假設 S中的訓練樣例個數為 m,那么每一個子 集有 m/k 個訓練樣例,,相應的子集稱作 {s1,s2,…,sk}。
2、每次從分好的子集中里面,拿出一個作為測試集,其它k-1個作為訓練集

3、根據訓練訓練出模型或者假設函數。
4、 把這個模型放到測試集上,得到分類率。

5、計算k次求得的分類率的平均值,作為該模型或者假設函數的真實分類率。

這個方法充分利用了所有樣本。但計算比較繁瑣,需要訓練k次,測試k次。


三:留一法  leave-one-out cross validation

留一法就是每次只留下一個樣本做測試集,其它樣本做訓練集,如果有k個樣本,則需要訓練k次,測試k次。

留一發計算最繁瑣,但樣本利用率最高。適合於小樣本的情況。


免責聲明!

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



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