交叉驗證 Cross validation


來源:CSDN: boat_lee

簡單交叉驗證 hold-out cross validation

  • 從全部訓練數據S中隨機選擇s個樣例作為訓練集training set,剩余的作為測試集testing set;
  • 通過對測試集訓練 ,得到假設函數或者模型;
  • 在測試集中對每一個樣本根據假設函數或者模型,得到訓練集的類標,求出分類正確率;
  • 選擇具有最大分類率的模型或者假設。

測試集和訓練集分開,避免過擬合現象。

k折交叉驗證 k-fold cross validation

  • 將全部訓練數據S分成k個不相交的子集,假設S中的訓練樣例個數為m,那么每一個子集有m/k個訓練樣例,相應的子集為 {s1,s2,…,sk};
  • 每次從分好的子集中中拿出一個作為測試集,其它k-1個作為訓練集;
  • 根據訓練訓練出模型或者假設函數;
  • 把這個模型放到測試集上,得到分類率;
  • 計算k次求得的分類率的平均值,作為該模型或者假設函數的真實分類率。

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

留一法 leave-one-out cross validation

留一法就是每次只留下一個樣本做測試集,其它樣本做訓練集,如果有k個樣本,則需要訓練k次,測試k次。留一法即k=1的k折交叉驗證。
留一法計算最繁瑣,但樣本利用率最高。適合於小樣本的情況。


免責聲明!

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



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