第一個問題「K-fold cross validation的測試結果是針對K個中的哪個模型的呢?」的答案是:不是其中任何一個。雖然很少有材料提到,但是會容易理解,對10個不同的模型的測試結果取平均,那麼這個平均就不再是對其中任何一個模型的評價。
這裡又引申出來一個問題,既然不是其中任何一下,那麼又是對什麼的評價呢?答案是:對模型超參(super parameter)性能的評價。(題外話:超參是指無法通過訓練過程個修改的參數,例如K-means當中的K值。)這裡通過多個模型的測試取平均可以相對準確的確定超參的性能。
第二個問題「在實際應用中,我們應該選擇哪個模型呢?」的答案是:我們需要重新訓練一個新的模型。或許有些讀者已經想到,既然K-fold是用來確定超參的,那麼就應該先確定超參然後再重新訓練模型。也就是說運用K-fold的正確流程應該是
第一步,設計多組超參組合,(實際中可以用grid search或者random search方法以後會有介紹)
第二步,運用上面提到的K-fold cross validation標準流程。
第三步,通過第二步中的測試結果的平均,確定最優的一組超參,然後再用普通的holdout cross validation方法重新訓練得出一個模型。
以上才是完整的K-fold應用流程,希望對讀者有所幫助。