CH5.3 模型訓練評估與驗證
模型訓練評估與驗證
資料分割(訓練/驗證/測試集)與批次訓練策略 → 學習率調整與早停策略 → 訓練監控與紀錄 → 分類評估指標(混淆矩陣、Accuracy/Precision/Recall/F1/ROC-AUC)與迴歸評估指標(MSE/MAE/RMSE/決定係數)→ 模型比較與綜合評估策略 → 交叉驗證家族(K折交叉驗證/Stratified K-fold/LOOCV/Repeated K-fold)。
1. 資料分割與批次訓練設計
| 資料集 | 用途 |
|---|---|
| 訓練集(Training Set) | 模型參數的學習與內部結構調整 |
| 驗證集(Validation Set) | 調整超參數、監控訓練過程與過擬合 |
| 測試集(Test Set) | 模型訓練完成後的最終效能評估,模擬實際部署表現 |
| 批次策略 | 說明 | 特點 |
|---|---|---|
| 全量訓練(Batch GD) | 每輪用全部資料計算梯度 | 方向穩定、收斂平滑,但記憶體需求高,不易應用於大規模資料 |
| 隨機梯度下降(SGD) | 每次用一筆樣本更新 | 適合線上學習,惟更新震盪較大 |
| 小批次訓練(Mini-batch SGD) | 每次用固定筆數樣本更新 | 兼具穩定與效率,是深度學習最常用方法 |
學習率調整策略:固定學習率(簡單任務)、遞減學習率(Step Decay/Exponential Decay)、動態調整(如 PyTorch 的 ReduceLROnPlateau,驗證效能停滯時自動調降)、預熱策略(訓練初期用低學習率逐漸升高,避免初期梯度爆炸,常見於 Transformer)。
早停策略(Early Stopping):設定容忍次數(Patience,驗證指標連續 N 次無明顯改善則終止)與最小改善幅度(Minimum Delta),並常搭配學習率調整共同使用。
有效的訓練流程需全程監控與可追蹤性(Reproducibility):訓練指標視覺化(TensorBoard、WandB、MLflow)、超參數與模型版本管理、資源使用狀況追蹤(GPU/CPU/記憶體)。
2. 分類任務的評估指標
(1) 混淆矩陣
| 實際為 Positive | 實際為 Negative | |
|---|---|---|
| 預測為正類 | 真正 TP(True Positive) | 假正 FP(False Positive) |
| 預測為負類 | 假負 FN(False Negative) | 真負 TN(True Negative) |
(2) 常見分類指標公式
| 指標 | 定義 | 適用場景 |
|---|---|---|
| Accuracy | 正確預測樣本數佔總樣本數比例 | 類別分佈相對均衡時;嚴重類別不平衡時容易誤導(如 95% 樣本為負類,全預測負類準確率仍達 95%) |
| Precision | 預測為正類中,實際為正類的比例 | 誤報代價高時(垃圾郵件分類、醫療誤診) |
| Recall | 實際正類中,被正確預測為正類的比例 | 漏報代價高時(癌症偵測、詐騙偵測) |
| F1-score | Precision 與 Recall 的調和平均 | 需在兩者間取得平衡,且類別不平衡嚴重時 |
| ROC-AUC | ROC 曲線(橫軸假正率、縱軸真正率)下的面積 | 需綜觀整體預測能力、需調整分類閾值時;越接近 1 表示模型越好 |
在嚴重類別不平衡的資料中,Accuracy 容易誤導判斷——即使模型什麼都不學、一律預測多數類別,Accuracy 仍可能高達 95% 以上。此時應改用 Precision、Recall、F1-score 或 ROC-AUC 等更能反映少數類別表現的指標。
3. 迴歸任務的評估指標
| 指標 | 特點 | 適用情境 |
|---|---|---|
| MSE | 對大誤差高度敏感,放大極端偏差影響 | 需強調大誤差懲罰的任務(金融風險預測) |
| MAE | 對異常值較不敏感 | 資料具偏態分佈或含少量極端值 |
| RMSE | MSE 的平方根,回到與目標變數相同單位 | 模型精度整體衡量,廣泛用於報告與比較 |
| R²(決定係數) | 衡量模型解釋目標變數變異的比例 | 線性迴歸模型的快速評估;不適用於非線性或未標準化資料的比較 |
R² 的判讀:R²=1 表示模型能完全解釋資料變異;R²=0 表示模型僅與常數模型(直接預測平均值)同等表現;R²<0 表示模型比常數模型還差,可能發生在模型嚴重偏離資料趨勢或過度擬合時。
4. 模型比較與綜合評估策略
- 指標組合與多角度觀察:分類任務結合 Accuracy、F1、ROC-AUC、混淆矩陣;迴歸任務綜合 MAE、RMSE、R²,避免單一指標掩蓋類別偏誤。
- 類別不平衡處理:類別重加權(Class Weights)、過採樣(SMOTE)、異常值建模(Isolation Forest、One-Class SVM,將不平衡問題視為異常偵測任務)。
- 業務導向自定義指標:風險導向任務(自定義誤判成本矩陣,強化高代價錯誤如漏診的懲罰)、商業任務(NDCG、Profit Score)。
- 多輪驗證與穩定性觀察:K-fold 交叉驗證、重複交叉驗證(Repeated K-fold CV)、穩定性視覺化(箱型圖、平均排名圖)。
5. 交叉驗證家族
交叉驗證(Cross-Validation)透過多次切分資料反覆訓練與測試,更真實地衡量模型泛化能力,避免單次資料切分產生偏誤。
| 方法 | 過程 | 特點 | 適用場景 |
|---|---|---|---|
| K折交叉驗證(K-fold) | 資料平均分為 K 折,每次 1 折驗證、其餘 K-1 折訓練,重複 K 次取平均 | 減少切分偏差,常見設定 K=5 或 10;計算成本為 K 倍 | 中大型資料集,模型選擇與效能比較的標準方法 |
| Stratified K-fold | 分層抽樣,確保每折類別比例與整體一致 | 解決類別不均導致的評估失真 | 類別分佈不均的分類問題(詐欺偵測、疾病分類) |
| LOOCV(Leave-One-Out CV) | K=n(樣本數),每次僅留 1 筆驗證,其餘 n-1 筆訓練 | 評估偏差最小,但計算成本極高,訓練 n 次 | 樣本數極小但珍貴的情境(臨床研究) |
| Repeated K-fold | 標準 K-fold 基礎上多次隨機重劃並計算平均與變異 | 評估結果更穩定,但計算成本更高 | 調參流程、學術研究需報告標準差與置信範圍 |
交叉驗證選擇口訣:「一般用 K-fold,類別不均用 Stratified,樣本超少用 LOOCV,追求穩定用 Repeated」。
📝 章節考題自測(先作答,再點開解答)
Q1. 在嚴重類別不平衡的資料集中(如 95% 為負類),下列哪一種評估指標最容易產生誤導?
(A) F1-score (B) Accuracy (C) ROC-AUC (D) Recall
解答與解析
參考 Ans: (B) 在嚴重類別不平衡的資料中,即使模型全部預測為多數類別,Accuracy 仍可能高達 95%,無法反映模型對少數類別的辨識能力,容易產生誤導。
Q2. 某分類模型的混淆矩陣為 TP=80, FP=20, FN=10, TN=90,請計算此模型的 Precision。
(A) 0.80 (B) 0.89 (C) 0.8 (D) 0.5
解答與解析
參考 Ans: (A) \(\text{Precision} = \dfrac{TP}{TP+FP} = \dfrac{80}{80+20} = \dfrac{80}{100} = 0.8\)。Precision 衡量被預測為正類中,實際為正的比例。
Q3. 承上題,請計算此模型的 Recall 與 F1-score(四捨五入至小數點後兩位)。
(A) Recall=0.89, F1=0.84 (B) Recall=0.80, F1=0.80 (C) Recall=0.89, F1=0.94 (D) Recall=0.5, F1=0.6
解答與解析
參考 Ans: (A) \(\text{Recall} = \dfrac{TP}{TP+FN} = \dfrac{80}{80+10} = \dfrac{80}{90} \approx 0.89\) \(F_1 = 2\times\dfrac{0.8\times0.89}{0.8+0.89} = 2\times\dfrac{0.712}{1.69} \approx 2\times0.4213 \approx 0.84\) F1-score 是 Precision 與 Recall 的調和平均,能同時反映兩者的平衡表現。
Q4. 某迴歸模型對 3 筆資料的實際值與預測值分別為:(10,12)、(20,18)、(30,33),請計算此模型的 MAE。
(A) 2.33 (B) 3.0 (C) 7.0 (D) 4.5
解答與解析
參考 Ans: (A) \(\text{MAE} = \dfrac{1}{3}(|10-12|+|20-18|+|30-33|) = \dfrac{1}{3}(2+2+3) = \dfrac{7}{3} \approx 2.33\) MAE 是所有預測誤差絕對值的平均,對每筆誤差一視同仁,不會像 MSE 那樣放大較大的誤差。
Q5. 承上題資料,請計算此模型的 MSE。
(A) 5.67 (B) 17 (C) 4.12 (D) 2.33
解答與解析
參考 Ans: (A) \(\text{MSE} = \dfrac{1}{3}\left[(10-12)^2+(20-18)^2+(30-33)^2\right] = \dfrac{1}{3}(4+4+9) = \dfrac{17}{3} \approx 5.67\) MSE 對較大誤差(此例中誤差 3 的平方為 9)的懲罰比 MAE 更重,這正是 MSE 與 MAE 選型時的關鍵差異。
Q6. 若一迴歸模型的 R² 值為 0,代表下列何種意義?
(A) 模型能完全解釋資料變異 (B) 模型表現等同於直接預測平均值的常數模型 (C) 模型比常數模型還差 (D) 模型完全沒有誤差
解答與解析
參考 Ans: (B) R²=0 表示模型僅與常數模型(直接預測平均值)同等表現;R²=1 表示完全解釋變異;R²<0 則代表模型比常數模型還差。
Q7. 交叉驗證中,哪一種方法在每次驗證中只留下一筆樣本作為驗證集,其餘皆用於訓練?
(A) K-fold (B) Stratified K-fold (C) LOOCV (D) Repeated K-fold
解答與解析
參考 Ans: (C) LOOCV(Leave-One-Out Cross-Validation)是 K-fold 的極端形式,當 K 等於樣本數 n 時,每次只留一筆做驗證,能最大化資料利用,但計算成本極高,不適用於大樣本情境。
Q8. 若資料集存在明顯的類別不平衡(如詐欺偵測中詐欺樣本僅佔 2%),進行交叉驗證時最適合採用下列哪一種方法?
(A) 標準 K-fold (B) Stratified K-fold (C) LOOCV (D) 全量訓練無需交叉驗證
解答與解析
參考 Ans: (B) Stratified K-fold 於劃分時確保每一折中各類別比例與整體資料集相符,特別適用於類別分佈不均的資料,能有效解決類別不均導致的模型評估失真問題。
Q9. 下列哪一項屬於「驗證集」在模型訓練流程中的正確用途?
(A) 訓練模型的主要參數 (B) 調整超參數並監控過擬合 (C) 作為最終上線效能評估依據 (D) 儲存原始資料備份
解答與解析
參考 Ans: (B) 驗證集用於調整超參數(如學習率、正則化係數)與監控訓練過程中的過擬合現象;測試集才是保留給模型訓練完成後、最終效能評估使用的資料集。