[機器學習] 交叉驗證K-fold Cross | 就愛喝咖啡
![[機器學習] 交叉驗證K-fold Cross](https://i.imgur.com/B2oemyF.jpg)
2021年7月9日—在本文中我們細部來介紹每一種K-Fold的變型。K-FoldCross-Validation;NestedK-FoldCrossValidation;RepeatedK-Fold;StratifiedK-Fold;GroupK ...
![[機器學習] 交叉驗證K-fold Cross](https://i.imgur.com/B2oemyF.jpg)
交叉驗證又稱為樣本外測試,是資料科學中重要的一環。透過資料間的重複採樣過程,用於評估機器學習模型並驗證模型對獨立測試數據集的泛化能力。在本文中我們細部來介紹每一種 K-Fold 的變型。
K-Fold Cross-Validation Nested K-Fold Cross Validation Repeated K-Fold Stratified K-Fold Group K-Fold K-fold Cross-Validation在 K-Fold 的方法中我們會將資料切分為 K 等份,K 是由我們自由調控的,以下圖為例:假設我們設定 K=10,也就是將訓練集切割為十等份。這意味著相同的模型要訓練十次,每一次的訓練都會從這十等份挑選其中九等份作為訓練資料,剩下一等份未參與訓練並作為驗證集。因此訓練十回將會有十個不同驗證集的 Error,這個 Error 通常我們會稱作 loss 也就是模型評估方式。模型評估方式有很多種,以回歸問題來說就有 MSE、MAE、RMSE…等。最終把這十次的 loss 加總起來取平均就可以當成最終結果。透過這種方式,不同分組訓練的結果進行平均來減少方差,因此模型的性能對數據的劃分就不會那麼敏感。
參考[1]
[scikit-learn] K-Fold[2]
Nested K-Fold Cross Validation此方法為 K-Fold 的變型,Nested 意指雙迴圈(巢狀)的意思。分別有外層迴圈(Outer Loop)為一般正常的 K-Fold。唯一不同的是我們在每一次迭代中會將外層 K-Fold 的訓練集拿出來再進入到內層迴圈(Inner Loop)再做一次 K-Fold。由下圖可以看到,(1)我們可以在第一個外層回圈中將訓練資料又切為五份訓練集和測試集,內層圈透過 Grid Search 等...