搜尋意圖: 如果你在找「模型選擇 是什麼」或「模型選擇 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 從多個候選機器學習模型中,依評估指標與驗證策略選出泛化能力最佳的決策過程。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
從多個候選機器學習模型中,依評估指標與驗證策略選出泛化能力最佳的決策過程。
模型選擇(Model Selection)是機器學習開發生命週期中的核心決策環節,橫跨「選擇哪種演算法」與「如何最佳化超參數」兩個層次。好的模型選擇流程能防止過擬合(Overfitting)與欠擬合(Underfitting),確保模型在未見過的新資料上具有良好的泛化能力。
模型選擇的兩個層次
第一層:演算法選擇。決定使用哪類機器學習演算法,如線性模型(Logistic Regression、Ridge)、樹狀模型(決策樹、隨機森林、XGBoost)、深度學習模型(MLP、CNN、Transformer)、核函數方法(SVM)等。選擇通常基於資料量、特徵維度、任務類型(分類/迴歸/序列)以及對可解釋性的要求。
第二層:超參數調整。在選定演算法後,尋找最佳的超參數配置,例如神經網路的學習率(Learning Rate)、正則化強度(λ)、樹的深度(Max Depth)等。這些參數無法從訓練資料直接學得,需透過驗證策略系統性地搜尋。
驗證策略:如何公正評估模型
Hold-out Validation:將資料集分割為訓練集(Train)和驗證集(Validation),通常 70/30 或 80/20,簡單快速但結果受到分割方式(尤其小資料集)的隨機影響。
K-Fold Cross-Validation:將資料分成 K 等份(Folds),每次以其中一份作為驗證集,其餘 K-1 份作為訓練集,重複 K 次並取平均。K=5 或 K=10 最常用,評估結果更穩定且充分利用所有資料。
Stratified K-Fold:K-Fold 的變體,保證每個 Fold 中各類別的比例與整體資料相同,適合類別不平衡的分類問題。
Nested Cross-Validation:外層 CV 評估模型的泛化效能,內層 CV 選擇超參數,防止因同時用同一批資料選參數和評估而產生樂觀偏差。適合小資料集或需要嚴格效能估計的場景,但計算成本高(總 fold 數 = 外層 × 內層)。
評估指標的選擇
不同任務使用不同的評估指標:
- 二元分類:Accuracy、Precision、Recall、F1、AUC-ROC,不平衡資料優先選 F1 或 AUC
- 多分類:Macro/Micro F1、Weighted F1
- 迴歸:MSE、RMSE、MAE、R²
- 序列生成:BLEU、ROUGE、Perplexity
複雜度懲罰:避免過擬合的理論基礎 在效能相近的情況下,奧卡姆剃刀原則(Occam's Razor)建議選擇較簡單的模型,因為複雜模型更容易過擬合。AIC(赤池資訊準則)和 BIC(貝葉斯資訊準則)提供了將模型複雜度(參數數量)納入考量的量化指標,懲罰不必要的參數。
AutoML 與超參數搜尋自動化 Grid Search:窮舉所有超參數組合(笛卡爾積),確保找到搜尋空間內的最優解,但計算成本隨參數數量指數增長。 Random Search:在超參數空間中隨機採樣,統計上每個參數的每個值都有均等機會被採樣,實驗顯示在高維空間中通常比 Grid Search 更有效率。 Bayesian Optimization:用代理模型(通常是高斯過程 GP 或樹形 Parzen 估計器 TPE)預測哪些超參數配置最可能有好的效果,依序採樣最有希望的點,是目前效率最高的超參數搜尋方法,廣泛用於 Optuna、SMAC、Ray Tune 等框架。
時間序列資料的特殊驗證策略
標準 K-Fold CV 假設資料點之間彼此獨立(IID),但時間序列資料存在時序依賴,未來的資料不能用於訓練預測過去的模型。應使用 Time-Series Split(或 Walk-Forward Validation):訓練集只能使用時間上早於驗證集的資料,逐步向前滾動,確保驗證集始終模擬真實的「用過去預測未來」情境。
常見問題
模型選擇時最嚴重且最常犯的錯誤是什麼?
最嚴重的是「測試集洩漏(Data Leakage)」:在模型選擇過程中誤用了測試集的資訊。常見情形包括:用測試集選超參數(導致超參數過擬合測試集)、資料預處理時用了包含測試集資料計算的統計量(如 StandardScaler 用全資料計算均值和標準差,測試集的分布資訊洩漏給了訓練過程)、或在早期探索階段多次查看測試集結果。正確做法是將測試集嚴格封存,只在所有模型選擇決定都最終確定後才開封評估一次,且只能用一次。
K=5 和 K=10 的 Cross-Validation 有什麼具體差別?
K=5 和 K=10 是最常用的兩個選擇,分別代表不同的偏差-方差取捨。K=5 時每次訓練集佔總資料的 80%,計算成本適中,適合資料量中等或大的場景;K=10 時每次訓練集佔 90%,評估偏差更低(訓練集更大,模型更接近最終版本),但計算成本是 K=5 的兩倍,各折之間的重疊更多使得方差估計略有問題。實證研究(如 Kohavi 1995)顯示在大多數資料集上 K=10 的偏差-方差平衡優於 K=5。資料集很小時(<100 筆),可考慮 Leave-One-Out CV(K=n),但計算成本極高。
如何在多個效能相近的模型中做最終選擇?
當多個模型的驗證指標差異落在統計誤差範圍內(用 paired t-test 或 Wilcoxon signed-rank test 確認無統計顯著差異),應引入次要標準:1)推論延遲,線上服務對響應速度有嚴格要求,100ms 大型模型 vs. 5ms 輕量模型是不同的取捨;2)可解釋性,金融、醫療等高風險應用受法規要求(如 GDPR 的可解釋性規定);3)維護成本,深度神經網路需要更多算力、更多工程人員、更頻繁的重訓;4)訓練穩定性,能否在新資料上快速重訓並得到可靠結果。「夠好且可維護」往往比「邊際最佳但難維護」更有長期價值。