k-fold cross-validation(k 折交叉驗證)是一種常用的統計學方法,用於評估機器學習模型的效能。它的主要目的是在有限的數據集上,更可靠地估計模型在未知數據上的表現,減少過度擬合的風險。

以下是 k-fold cross-validation 的運作方式:

  • 資料分割:
    • 將原始數據集隨機分成 k 個大小相等的子集(或稱為「折」)。
  • 迭代訓練與驗證:
    • 進行 k 次迭代。在每次迭代中,選擇其中一個子集作為驗證集(或稱為測試集),其餘 k-1 個子集則作為訓練集。
    • 使用訓練集訓練模型,然後在驗證集上評估模型的效能。
  • 效能評估:
    • 將 k 次迭代得到的效能評估結果(例如準確度、精確度、召回率等)進行平均,得到最終的效能估計。

k-fold cross-validation 的優點:

  • 更可靠的效能估計:
    • 通過多次迭代,可以更全面地評估模型在不同數據子集上的表現,減少單次隨機分割帶來的偏差。
  • 充分利用數據:
    • 每個數據樣本都會被用於訓練和驗證,充分利用有限的數據資源。
  • 減少過度擬合:
    • 通過在不同的驗證集上評估模型,可以更好地檢測和避免過度擬合。

k 的選擇:

  • k 的選擇會影響交叉驗證的結果。
  • 常用的 k 值包括 5 和 10。
  • 較小的 k 值可能導致較高的偏差,而較大的 k 值可能導致較高的方差。
  • 「留一法交叉驗證」(LOOCV)是一種特殊的 k-fold cross-validation,其中 k 等於數據集的大小。