簡介
單一的訓練-測試分割可能會讓您對模型品質產生錯誤的感覺。交叉驗證提供了更穩定的評估,而超參數調整可以幫助您找到合理的配置,而無需依賴資料分割的運氣。
課程目標
- 理解為什麼你不應該絕對相信單一分裂。
- 使用交叉驗證來估計更穩定的性能。
- 根據受控製程調整超參數。
什麼是交叉驗證?
數據被分成很多部分。每次,一個折疊進行驗證,其餘折疊進行訓練。最終結果是多次評價的平均值。
什麼是超參數?
超參數是您在訓練之前選擇的值,例如 max_depth、n_estimators、C 或learning_rate。它們與模型從數據中學習的參數不同。
實際調優
- 從簡單的基線開始。
- 選擇最不重要的超參數。
- 使用 GridSearchCV 或 RandomizedSearchCV。
- 追蹤折疊之間的平均分數和標準差。
範例程式碼
從 sklearn.model_selection 導入 RandomizedSearchCV
從 sklearn.ensemble 導入 RandomForestClassifier
常見錯誤
- 當基線尚未穩定時,調整範圍太寬。
- 使用測試集調整超參數。
- 進行大量測試但不記錄結果。
練習練習
- 使用 3 個超參數調整基於樹的模型。
- 比較調音前和調音後的分數。
- 錄音評論:調音真的有改善,還是只改善很少?
完成標準
- 可以在完整的管道中使用交叉驗證。
- 區分用於調整的驗證和用於最終評估的測試。
- 有系統地記錄實驗。
逐步練習(進階)
- 使用標準分割運行基線。
- 運行 KFold 或 StratifiedKFold 5 折。 3.使用RandomizedSearchCV進行調優,重要參數不超過4個。
- 比較配置之間的平均得分和標準得分。
- 根據性能+穩定性最終確定配置。
應提交工件
- 按分數排名前 10 名的配置表。
- 以倍數分割的分數分佈圖。
- 停止調整以避免過度搜尋的規則。
自測題
- 什麼時候應該優先使用 RandomizedSearchCV 而不是 GridSearchCV?
- 折疊之間的高標準差意味著什麼?
- 為什麼測試集不用於調優?