1. 程式人生 > >AI - MLCC06 - 訓練集和測試集 (Training and Test Sets)

AI - MLCC06 - 訓練集和測試集 (Training and Test Sets)

垃圾郵件 數據庫 如果 str 使用 輸入 test ini 地址

原文鏈接:https://developers.google.com/machine-learning/crash-course/training-and-test-sets

1- 拆分數據

可將單個數據集拆分為一個訓練集和一個測試集。

  • 訓練集 - 用於訓練模型的子集。
  • 測試集 - 用於測試訓練後模型的子集。

技術分享圖片

訓練集的規模越大,模型的學習效果越好。
測試集規模越大,對於評估指標的信心越充足,置信區間就越窄。
在創建一個能夠很好地泛化到新數據模型的過程中,測試集充當了新數據的代理。


拆分數據的一些註意事項:

  • 兩個數據集必須相互獨立。
  • 確保先進行隨機化,再拆分數據。
  • 如果數據集規模很小,可能需要執行諸如交叉驗證之類較為復雜的操作。

確保測試集滿足以下兩個條件:

  • 規模足夠大,可產生具有統計意義的結果。
  • 能代表整個數據集。換言之,挑選的測試集的特征應該與訓練集的特征相同。

請勿對測試數據進行訓練。
如果評估指標取得了意外的好結果,則可能表明您不小心對測試集進行了訓練。例如,高準確率可能表明測試數據泄露到了訓練集。


舉例說明
假設一個模型要預測某封電子郵件是否是垃圾郵件,它使用主題行、郵件正文和發件人的電子郵件地址作為特征。
按照 80-20 的拆分比例將數據拆分為訓練集和測試集。
在訓練之後,該模型在訓練集和測試集上均達到了 99% 的精確率,原本預計測試集上的精確率會低於此結果。
因此再次查看數據後發現,測試集中的很多樣本與訓練集中的樣本是重復的(由於疏忽,在拆分數據之前,沒有將輸入數據庫中的相同垃圾郵件重復條目清理掉)。
無意中對一些測試數據進行了訓練,因此無法再準確衡量該模型泛化到新數據的效果。

2- 關鍵詞

過擬合 (overfitting)
創建的模型與訓練數據過於匹配,以致於模型無法根據新數據做出正確的預測。

測試集 (test set)
數據集的子集,用於在模型經由驗證集的初步驗證之後測試模型。
與訓練集和驗證集相對。

訓練集 (training set)
數據集的子集,用於訓練模型。
與驗證集和測試集相對。

AI - MLCC06 - 訓練集和測試集 (Training and Test Sets)