AI - MLCC06 - 訓練集和測試集 (Training and Test Sets)
阿新 • • 發佈:2019-01-17
垃圾郵件 數據庫 如果 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)