【機器學習】k-fold cross validation(k-摺疊交叉驗證)
阿新 • • 發佈:2019-01-04
交叉驗證的目的:在實際訓練中,模型通常對訓練資料好,但是對訓練資料之外的資料擬合程度差。用於評價模型的泛化能力,從而進行模型選擇。
交叉驗證的基本思想:把在某種意義下將原始資料(dataset)進行分組,一部分做為訓練集(train set),另一部分做為驗證集(validation set or test set),首先用訓練集對模型進行訓練,再利用驗證集來測試模型的泛化誤差。另外,現實中資料總是有限的,為了對資料形成重用,從而提出k-摺疊交叉驗證。
對於個分類或迴歸問題,假設可選的模型為。k-摺疊交叉驗證就是將訓練集的1/k作為測試集,每個模型訓練k次,測試k次,錯誤率為k次的平均,最終選擇平均率最小的模型Mi。
1、 將全部訓練集S分成k個不相交的子集,假設S中的訓練樣例個數為m,那麼每一個子集有m/k個訓練樣例,相應的子集稱作{}。
2、 每次從模型集合M中拿出來一個,然後在訓練子集中選擇出k-1個
{}(也就是每次只留下一個),使用這k-1個子集訓練後,得到假設函式。最後使用剩下的一份作測試,得到經驗錯誤。