- 模型評估方法 (Model Evaluation)
- 交叉驗證( Cross Validation)
- K 折交叉驗證(K-Fold Cross Validation)
- 留一交叉驗證(Leave-One-Out, LOO Cross Validation)
- 重複 K 折驗證(Repeated K-Fold Cross Validation)
- 保留驗證法(Hold-out Validation)
- Bootstrap 方法
- 回歸模型評估指標 (Regression Metrics)
- Mean Absolute Error(平均絕對誤差)
- Mean Squared Error(均方誤差)
- Root Mean Squared Error(均方根誤差)
- R-squared(決定係數)
- 分類模型評估指標 (Classification Metrics)
- 1. 混淆矩陣 (Confusion Matrix)
- 2. 基於混淆矩陣的指標
- 3. ROC-AUC
- ROC (Receiver Operating Characteristic) 曲線
- AUC (Area under curve)
- 準確性 Accuracy
- Top-1 Accuracy
- Top-5 Accuracy
模型評估方法 (Model Evaluation)
交叉驗證( Cross Validation)
K 折交叉驗證(K-Fold Cross Validation)
K-fold 本身只是一種資料切分與模型評估策略,需要在函數中指定參數,在大多數訓練框架中都可以自動處理流程
流程:
- 將資料集平均切成 K 等份(folds)
- 每次用其中 1 fold 作為驗證集,其他 K-1 folds 為訓練集
- 執行 K 次訓練 + 驗證,平均結果作為最終表現
優點:適用於小型資料集,可減少評估偏差 常見 K 值:5 或 10
留一交叉驗證(Leave-One-Out, LOO Cross Validation)
特例的 K-fold,其中 K = 資料筆數(每次留 1 筆資料作驗證,其餘為訓練)
- 適用:非常小的資料集
- 缺點:需訓練 N 次,計算成本高
重複 K 折驗證(Repeated K-Fold Cross Validation)
流程:
- 在不同的隨機分割下,重複執行 K-fold
- 提高評估穩定性與統計可靠度
範例:n_splits=5, n_repeats=3
→ 共訓練 5×3=15 次
保留驗證法(Hold-out Validation)
流程:
- 單次將資料分為訓練集、驗證集、測試集(如 60-20-20) 優點:簡單快速,適合大數據集 缺點:結果高度依賴切分方式
Bootstrap 方法
- 定義:
- 使用「有放回」的隨機抽樣建立多組資料子集,進行模型評估
- 用途:評估模型在樣本不確定性下的穩定性(通常用於統計分析)
回歸模型評估指標 (Regression Metrics)
Mean Absolute Error(平均絕對誤差)
Mean Absolute Error(MAE)為回歸模型中最基本的評估指標之一。它計算所有預測值與實際值之間的「絕對誤差」平均。
- :第 筆實際值
- :第 筆預測值
- :樣本總數
特性
- 對極端值不敏感
- 與目標變數單位相同,具可解釋性
- 適合資料中包含噪聲或異常值時使用
Mean Squared Error(均方誤差)
Mean Squared Error(MSE)是迴歸問題中常用的誤差度量方法之一。它將每一筆預測誤差平方後取平均,強調大誤差的懲罰。
數理理解: 是平均數,原因是例如正確答對率是 ,那麼當 答對題數 3 的時候就是平均數。
import numpy as np
# 模擬真實與預測資料
y_true = np.array([3.0, 2.5, 4.0])
y_pred = np.array([2.8, 3.0, 3.7])
# 手動計算 MSE
mse = np.mean((y_true - y_pred) 2)
print(f"MSE: {mse:.4f}")
特性
-
對極端值非常敏感
-
單位為目標變數的平方
-
是許多最小平方法(例如線性回歸)的最小化目標
-
雖具數學性質佳,但解釋性不如 RMSE 和 MAE
Root Mean Squared Error(均方根誤差)
Root Mean Squared Error(RMSE)為 MSE 的平方根,使其單位與原始目標變數相同,便於實際解釋。
特性
-
對極端值高度敏感
-
單位與目標變數一致
-
在強調大誤差的應用場景中使用最為廣泛
-
解釋性高,尤其在財務、房價等實數預測中具直觀意義
R-squared(決定係數)
R-squared()是衡量模型解釋變異程度的指標,描述模型對資料變異的解釋能力。
其中 為實際值的平均數。
特性
-
值域通常介於 0 到 1 之間(有時可為負,表示模型極差)
-
值越接近 1,模型解釋能力越強
-
不直接表示誤差大小,而是比例指標
-
會因變數數量增加而提高,需與調整後的 一併考慮
分類模型評估指標 (Classification Metrics)
1. 混淆矩陣 (Confusion Matrix)
模型在分類任務下的預測結果評估,混淆矩陣包含四個元素:
這邊表示的True、False代表模型預測結果的正確與錯誤 而Positive、Negative代表著這個事件本身二元分類,例如(有無生病、有無信用)
-
TP (True Positive):正確預測為陽性結果
-
FP (False Positive):錯誤預測為陽性結果
-
TN (True Negative):正確預測為陰性結果
-
FN (False Negative):錯誤預測為陰性結果
2. 基於混淆矩陣的指標
在前面混淆矩陣的指標延伸出的評估方法
指標 | 計算公式 | 說明 |
---|---|---|
Precision(精確率) | TP / (TP + FP) | 預測為正中真正正的比例 |
Recall / Sensitivity(召回率 / 敏感度) | TP / (TP + FN) | 所有正樣本中被正確識別的比例 |
F1-Score | 2 × (Precision × Recall) / (Precision + Recall) | 平衡精確率與召回率 |
Accuracy(準確度) | (TP + TN) / (TP + TN + FP + FN) | 所有樣本中正確預測比例 |
PPV(陽性預測值) | TP / (TP + FP) | 與 Precision 相同 |
NPV(陰性預測值) | TN / (TN + FN) | 預測為負中真正負的比例 |
3. ROC-AUC
ROC (Receiver Operating Characteristic) 曲線
ROC 曲線,用於二分類的評估方法,視覺化模型在不同分類臨界點下的性能,以混淆矩陣的元素為基礎,當曲線越靠近左上角,分類能力越強
軸線(Axes)的定義
-
Y 軸:Sensitivity / True Positive Rate (TPR)
-
X 軸:1 - Specificity / False Positive Rate (FPR)
AUC (Area under curve)
AUC 表示 ROC 曲線下的面積,用單一數值量化模型區分正負樣本的能力。數值範圍為 [0,1]。
-
AUC > 0.5:模型具有一定區分正負樣本能力
-
AUC = 0.5:模型沒有區分能力,相當於隨機猜測
-
AUC < 0.5:模型表現反向,預測結果與真實標籤相反
準確性 Accuracy
Accuracy 是衡量模型在測試資料上的整體正確率,常用於類別眾多的多分類任務,例如影像辨識。
例如有一個類別集合[A, B, C, D] 模型所預測機率 [0.1, 0.2, 0.3, 0.5]
Top-1 Accuracy
在 Top-1 Accuracy 的評估中,會直接判斷 0.7 這個最高機率預測結果與真實標籤,如預測結果是正確標籤就計為正確,然後計算這個正確的次數
Top-5 Accuracy
在 Top-5 Accuracy 的評估中,每筆樣本的預測機率分布中取前五大概率作為候選答案,只要其中包含正確標籤,就計為正確,然後計算這個正確的次數,然而這個例子來說,這裡分類種類並不多,因此並不適合使用Top-5 Accuracy