r036_logo
評估
2025-07-05

模型評估方法 (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)為回歸模型中最基本的評估指標之一。它計算所有預測值與實際值之間的「絕對誤差」平均。

MAE=1ni=1nyiy^i\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} \left| y_i - \hat{y}_i \right|
  • yiy_i:第 ii 筆實際值
  • y^i\hat{y}_i:第 ii 筆預測值
  • nn:樣本總數

特性

  • 對極端值不敏感
  • 與目標變數單位相同,具可解釋性
  • 適合資料中包含噪聲或異常值時使用

Mean Squared Error(均方誤差)

Mean Squared Error(MSE)是迴歸問題中常用的誤差度量方法之一。它將每一筆預測誤差平方後取平均,強調大誤差的懲罰。

MSE=1ni=1n(yiy^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - \hat{y}_i \right)^2

數理理解:1n\frac{1}{n} 是平均數,原因是例如正確答對率是 35\frac{3}{5},那麼當 1/5×1/5 \times 答對題數 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 的平方根,使其單位與原始目標變數相同,便於實際解釋。

RMSE=1ni=1n(yiy^i)2\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}

特性

  • 對極端值高度敏感

  • 單位與目標變數一致

  • 在強調大誤差的應用場景中使用最為廣泛

  • 解釋性高,尤其在財務、房價等實數預測中具直觀意義

R-squared(決定係數)

R-squared(R2R^2)是衡量模型解釋變異程度的指標,描述模型對資料變異的解釋能力。

R2=1i=1n(yiy^i)2i=1n(yiyˉ)2R^2 = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{\sum_{i=1}^{n}(y_i - \bar{y})^2}

其中 yˉ\bar{y} 為實際值的平均數。

特性

  • 值域通常介於 0 到 1 之間(有時可為負,表示模型極差)

  • 值越接近 1,模型解釋能力越強

  • 不直接表示誤差大小,而是比例指標

  • 會因變數數量增加而提高,需與調整後的 R2R^2 一併考慮


分類模型評估指標 (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-Score2 × (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