如何衡量 AI 的準確度(一):分類與回歸任務的基礎評估指標

前言:「準確率 90%」到底代表什麼?

當有人告訴你「我們的 AI 模型準確率達到 90%」,你的第一個反應應該是問:「在什麼任務上?用什麼指標衡量的?」

因為一個疾病篩查模型,如果只是把所有病人都判斷為「健康」,在某些罕見疾病的數據集上,準確率照樣可以高達 99%。這樣的數字毫無意義,甚至危險。

準確率(Accuracy) 只是眾多評估指標中最基礎的一個,而且它往往不是最重要的那個。

本系列文章分三篇,帶你系統性地了解如何客觀衡量 AI 的準確度:

  • 第一篇(本文):分類與回歸任務的基礎評估指標
  • 第二篇:大型語言模型(LLM)的評估方法
  • 第三篇:RAG 檢索增強生成系統的可靠性評估

一、分類任務指標(Classification Metrics)

分類任務就是讓模型把輸入歸到某個類別,例如:

  • 這封郵件是不是垃圾郵件?
  • 這張 X 光片是否顯示腫瘤?
  • 這則評論是正面還是負面的?

混淆矩陣(Confusion Matrix)

一切的起點是混淆矩陣。它把模型的預測結果與真實標籤交叉對照,分成四個格子:

預測為正預測為負
實際為正TP(真陽性)FN(假陰性)
實際為負FP(假陽性)TN(真陰性)
  • TP(True Positive):模型說「是」,實際也是「是」。✅
  • TN(True Negative):模型說「否」,實際也是「否」。✅
  • FP(False Positive):模型說「是」,但實際是「否」。❌(誤報)
  • FN(False Negative):模型說「否」,但實際是「是」。❌(漏報)

最基礎的準確率定義就是:

$$\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}$$

但當數據嚴重不平衡時(例如只有 1% 的郵件是垃圾郵件),全部預測為「非垃圾」就能拿到 99% 的準確率,模型根本沒在做事。

精確率(Precision):我說的「是」有多可信?

$$\text{Precision} = \frac{TP}{TP + FP}$$

精確率衡量的是:模型預測為正類的結果中,有多少是真的正類

適用場景:當誤報(FP)代價很高時。 例如垃圾郵件過濾——如果系統把重要的客戶合約誤判為垃圾郵件,損失就很大。此時我們希望「被標記為垃圾的郵件」要盡量都是真的垃圾。

召回率(Recall):真正的正類有多少被我找到?

$$\text{Recall} = \frac{TP}{TP + FN}$$

召回率衡量的是:實際為正類的樣本中,有多少被模型成功找出來

適用場景:當漏報(FN)代價很高時。 例如癌症篩查——我們寧可多做幾次確認檢查(產生誤報),也絕對不能讓一個真正的病人被漏掉。

F1 分數(F1-Score):精確率與召回率的調和平均

Precision 和 Recall 往往互相拉扯——提高 Precision 通常會降低 Recall,反之亦然。F1 分數提供了一個綜合評估:

$$F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$

F1 使用的是調和平均數,而不是算術平均數。這意味著如果 Precision 和 Recall 其中一個很低,F1 也會被拖累——它強迫你在兩者之間取得平衡,而不是讓一個極高的值掩蓋另一個極低的值。

一個具體範例

假設你訓練了一個詐騙訂單偵測模型,在測試集上的結果如下:

指標數值
準確率97.5%
精確率62%
召回率80%
F1 分數69.9%

準確率看起來很高,但 62% 的精確率意味著每 10 筆被標記為詐騙的訂單中,有近 4 筆是誤報——會讓正常客戶的訂單被擋下來,造成客訴。這就是為什麼只看準確率是危險的。


二、回歸任務指標(Regression Metrics)

回歸任務是預測一個連續的數值,例如:

  • 明天的氣溫是幾度?
  • 這間房子的市場售價是多少?
  • 明年這款產品的銷售量預測?

這類任務的評估核心是:預測值與真實值之間的距離有多近

平均絕對誤差(MAE, Mean Absolute Error)

$$MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|$$

MAE 計算所有預測誤差絕對值的平均數。它的意義非常直觀:「平均每次預測,大概差了多少單位?」

特點:對異常值(outlier)不敏感。所有誤差的權重相同,一個非常大的錯誤不會讓整體指標看起來特別糟糕。

均方根誤差(RMSE, Root Mean Square Error)

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

RMSE 先把誤差平方,再取平均,最後開根號。因為平方的關係,較大的誤差會被放大懲罰

特點:當你的業務無法容忍「偶爾的大偏差」時,RMSE 是更好的指標。 例如自動駕駛的速度預測,偏差 1 km/h 很常見,偏差 50 km/h 則可能致命——RMSE 能讓你更警覺後者的存在。

R 平方(R²,決定係數)

$$R^2 = 1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2}$$

R² 衡量的是模型對數據變異的解釋能力:

  • R² = 1:模型完美預測了所有數值。
  • R² = 0:模型的預測效果與「直接用平均值猜測」一樣差。
  • R² < 0:模型比直接猜平均值還差(通常代表模型有根本性的問題)。

特點:R² 提供了一個相對的比較基準,讓你知道模型「比隨機猜測好了多少」。

MAE vs RMSE:如何選擇?

任務性質                建議指標
──────────────────────────────────────
需要理解「平均誤差」      → MAE
無法容忍大偏差存在        → RMSE
需要與基準線比較          → R²
財務、醫療等高風險場景    → RMSE(更嚴格)

三、指標選擇的核心原則

從業務問題反推

選擇指標不是技術問題,而是業務問題。你需要先問:

  1. 什麼樣的錯誤代價最高? 誤報還是漏報?大偏差還是頻繁的小偏差?
  2. 數據是否平衡? 不平衡數據下,準確率幾乎沒有參考價值。
  3. 有沒有明確的可接受閾值? 例如「精確率不得低於 85%」。

不要只看單一指標

單一指標幾乎無法全面反映模型的表現。實際評估時,通常需要:

  • 主要指標(Primary metric):直接對應業務目標
  • 輔助指標(Secondary metrics):監控潛在的退化
  • 約束指標(Guardrail metrics):設定不可跨越的底線

例如,訓練一個信用評分模型,主要指標是 F1-Score,輔助指標是各個風險族群的 Recall(確保公平性),約束指標是整體誤報率不得超過 5%。


本文小結

任務類型指標核心問題
分類(平衡數據)Accuracy整體答對率是多少?
分類(不平衡 / 誤報代價高)Precision我說「是」的有多可信?
分類(不平衡 / 漏報代價高)Recall真正的正類我找到了多少?
分類(需要綜合評估)F1-ScorePrecision 與 Recall 的平衡點在哪?
回歸(直觀誤差理解)MAE平均差了多少?
回歸(嚴格懲罰大偏差)RMSE最大的錯誤有多嚴重?
回歸(與基準比較)比直接猜平均值好了多少?

這些都是機器學習中相對客觀、有標準答案的評估場景。但當我們進入大型語言模型(LLM)的世界,問題就變得更加複雜——因為「好的回答」本來就沒有唯一的標準答案。

下一篇,我們將深入探討如何衡量 LLM 的輸出品質,包括 BLEU、ROUGE、BERTScore,以及近年流行的「用 AI 評估 AI」方法(LLM-as-a-Judge)。