1. 程式人生 > >機器學習:驗證數據集與交叉驗證

機器學習:驗證數據集與交叉驗證

問題: 很好 oss 時有 相對 循環 val 超參數 mage

# 問題:如果將所有的數據集都作為訓練數據集,則對於訓練出的模型是否發生了過擬合會不自知,因為過擬合情況下,模型在訓練數據集上的誤差非常的小,使人覺得模型效果很好,但實際上可能泛化能力不足;

# 方案:將數據集分割為訓練數據集和測試數據集,通過測試數據集判斷模型的好壞——如果通過學習曲線發現,模型在訓練數據集上效果較好,在測試數據集上效果不好,模型出現過擬合,需要調整參數來重新得到模型,然後再次進行測試;以此類推循環此過程,最終得到最佳模型。

技術分享圖片

  # 最佳模型:也就是在測試數據集上表現的比較好的模型,因為這種模型的泛化能力強,放在生成環境中面對未知的環境時有更好的表現。

  # 調整的參數通常就是超參數:kNN 中的 k 和 P 、多項式回歸中的 degree 等;

# 方案缺陷:此方案得到的最佳模型,有可能會過擬合了測試數據集;

  # 解釋:雖然使用訓練數據獲得模型,但每次通過測試數據集驗證模型的好壞,一旦發現模型不好就重新調整參數再次訓練新的模型,這個過程一定程度上是模型在圍繞著測試數據集進行刷選,也就是說,我們在想辦法找到一組參數,這組參數使得我們在訓練數據集上獲得的模型在測試數據集上效果最好,但是由於測試數據集是已知的,我們相當於在針對這組測試數據集進行調參,那麽也有可能出現過擬合的現象,也就是說我們得到的模型針對這組測試數據集過擬合了;

# 解決方案的缺陷:將數據集分割為 3 部分——訓練數據集、驗證數據集、測試數據集;

技術分享圖片

  # 訓練數據集:訓練模型;

  # 驗證數據集:驗證模型的效果,如果模型的效果不好,則重新調整參數再次訓練新的模型,知道找到了一組參數,使得模型針對驗證數據集來說已經達到最優了;(調整超參數使用的數據集)

  # 測試數據集:將此數據集傳入由驗證數據集得到的最佳模型,得到模型最終的性能;(作為衡量最終模型性能的數據集)

  # 訓練數據集和驗證數據集參與了模型的創建:訓練數據集用來訓練,驗證數據集用來評判,一旦評判不好則重新訓練,這兩種形式都叫參與了模型的創建;

  # 測試數據集不參與模型的創建,其相對模型是完全不可知的,相當於是我們在模擬真正的真實環境中我們的模型完全不知道的數據;

# 分割成 3 部分數據的方案的缺陷:分割方式是隨機的;

  # 解釋:由於驗證數據集是從原始數據集中隨機分割出來的,模型有可能過擬合驗證數據集,但是只有一份驗證數據集,一旦驗證數據集中有極端的數據就可能導致模型相應的不準確;

# 解決分割成 3 部分數據的方案的缺陷的方案:交叉驗證(Cross Validation);

  # 交叉驗證相對(數據分割)是比較正規和標準的在調整模型參數時使用的查看模型性能的方式;

  # 交叉驗證:

機器學習:驗證數據集與交叉驗證