同時兼顧 Precision 和 Recall,要看哪個指標?
如果希望同時兼顧「精確率(Precision)」和「召回率(Recall)」,下列哪一個指標可以作為綜合評估的標準?
評估 AI 分類模型時,有兩個常用指標:「Precision(精確率)」和「Recall(召回率)」。這兩個指標通常互相牽制,很難同時都高。
有一個指標可以把這兩個合併成一個分數,方便你一眼看出模型整體表現。
問你:哪一個指標能同時兼顧 Precision 和 Recall?
一句話總結
要同時兼顧精確率和召回率,答案是 F1 分數(F1 Score):它是 Precision 和 Recall 的調和平均數,兩者都高時 F1 才會高,任一個很低時 F1 也會跟著低。
先感受問題:抓壞人和冤枉好人,很難兩全
「信安金融」的 AI 風控系統要辨識詐騙交易,每筆交易分類成「詐騙(正例)」或「正常(負例)」。
工程師面對一個兩難:
→ Precision 高 = AI 很少冤枉好人
Recall(召回率):所有真正的詐騙交易,AI 抓到了多少?
→ Recall 高 = AI 很少漏掉壞人
問題:如果把 AI 調得「非常謹慎」(只有非常確定才說詐騙),Precision 就很高,但很多詐騙沒被抓到,Recall 就低。反過來,如果「非常激進」(稍有嫌疑就說詐騙),Recall 高,但冤枉很多好人,Precision 低。
這時候需要一個指標,讓你在這個 tradeoff 中找到綜合評估的依據,那就是 F1 分數。
F1 分數是 Precision 和 Recall 的調和平均:兩個都高,F1 才高;任何一個很低,F1 就跟著低。比單純算算術平均更嚴格。
只看 Precision 或 Recall 各自會踩哪些坑?
- 只看 Recall 的問題:AI 學到「所有交易都說詐騙」就能達到 Recall = 1.0(沒有漏掉任何詐騙),但 Precision 接近 0,實際上毫無用處。信安金融會把所有正常客戶都凍結帳戶。
- 只看 Precision 的問題:AI 學到「只對最確定的一筆詐騙下判斷」,Precision = 1.0(判定詐騙的都真的是詐騙),但 Recall 接近 0,99.9% 的詐騙都漏掉了。
- 只看 Accuracy 的問題:如果 1000 筆交易裡只有 10 筆是詐騙(1% 詐騙率),AI 說「所有都是正常」就能得到 99% 的 Accuracy,但完全沒用。
- 無法比較兩個模型誰更「均衡」:模型 A(Precision 0.9,Recall 0.3)和模型 B(Precision 0.6,Recall 0.7),光看個別數字很難判斷誰更好用,F1 讓比較有單一基準。
- 決策者要求「一個數字說了算」:向主管報告時,同時說 Precision 和 Recall 容易讓人困惑,F1 提供了一個綜合分數方便決策。
F1 分數:調和平均讓任何一個低都會拖分
信安金融的工程師用 F1 分數作為模型評估基準:
模型 A 的 F1:Precision = 0.9,Recall = 0.3
F1 = 2 × (0.9 × 0.3) / (0.9 + 0.3) = 2 × 0.27 / 1.2 = 0.45
模型 B 的 F1:Precision = 0.6,Recall = 0.7
F1 = 2 × (0.6 × 0.7) / (0.6 + 0.7) = 2 × 0.42 / 1.3 ≈ 0.65
模型 B 的 F1 明顯更高,代表它在「不冤枉好人」和「不漏掉壞人」之間取得了更好的平衡。
算術平均的問題:(0.9 + 0.3) / 2 = 0.60,和 (0.6 + 0.7) / 2 = 0.65,差距沒那麼明顯。調和平均(F1)對低值更敏感,更能凸顯 Recall = 0.3 這個嚴重弱點。
這就是選項 D 講的:F1 分數(F1 Score)能兼顧 Precision 和 Recall。
技術版:F1 分數的公式與調和平均的意義
中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。
想像兩個跑者的平均速度:一個跑 10 公里花了 1 小時,另一個跑 10 公里花了 9 小時。
算術平均:(10 + 10/9) / 2 ≈ 5.6 公里/小時,但實際上兩個人合計跑了 20 公里花了 10 小時,真正的平均是 2 公里/小時。
調和平均才是正確答案,而 F1 就是 Precision 和 Recall 的調和平均:它對「低分那個」更敏感,一個很低的值會大幅拉低整體。
| 白話說法 | 公式 |
|---|---|
| Precision(精確率) | P = TP / (TP + FP) |
| Recall(召回率) | R = TP / (TP + FN) |
| F1 分數 | F1 = 2PR / (P + R) = 2TP / (2TP + FP + FN) |
| 調和平均(n=2)的一般式 | H = 2 / (1/P + 1/R) |
| 廣義 Fβ 分數 | Fβ = (1+β²) × PR / (β²P + R) |
- TP(True Positive)
- 真陽性:AI 說「詐騙」,真的是詐騙
- FP(False Positive)
- 假陽性:AI 說「詐騙」,但其實是正常交易(冤枉好人)
- FN(False Negative)
- 假陰性:AI 說「正常」,但其實是詐騙(漏掉壞人)
- TN(True Negative)
- 真陰性:AI 說「正常」,真的是正常交易
- β(beta)
- Fβ 中對 Recall 的重視程度,β > 1 代表更在乎 Recall,β < 1 更在乎 Precision
信安金融模型評估: TP = 80(抓到的真實詐騙) FP = 20(冤枉的正常交易) FN = 40(漏掉的詐騙) TN = 860(正確識別的正常交易) Precision = 80 / (80 + 20) = 80/100 = 0.80 Recall = 80 / (80 + 40) = 80/120 ≈ 0.667 F1 = 2 × 0.80 × 0.667 / (0.80 + 0.667) = 2 × 0.533 / 1.467 ≈ 0.727 Accuracy = (TP + TN) / Total = (80 + 860) / 1000 = 0.94 → Accuracy 看起來很高,但 F1 = 0.727 才真正反映詐騙偵測的效果
- FP 增加時,Precision 會怎麼變化?
- FN 增加時,Recall 會怎麼變化?
- F1 和算術平均的主要差別是什麼?哪一個對極端值更敏感?
- 如果詐騙漏掉的代價遠大於冤枉好人,應該用 F1 還是 Fβ(β > 1)?
- Accuracy 在類別不平衡(imbalanced)的資料集上有什麼問題?
為什麼其他選項是錯的
字面在說什麼:Accuracy 可以同時兼顧 Precision 和 Recall。
為什麼不對:Accuracy 的公式是 (TP + TN) / 全部樣本,它包含了 TN(正確識別的負例),完全不反映 Precision 和 Recall 的 tradeoff。在類別不平衡的資料集(如詐騙偵測,99% 正常交易),把所有交易都說「正常」,Accuracy = 99%,但 Precision 和 Recall 都是 0。Accuracy 和 Precision/Recall 是完全不同維度的指標。
誰會選錯:記得「Accuracy 是最常用的評估指標」就直接選的人,沒有意識到 Accuracy 無法反映 Precision 和 Recall 的平衡關係。
字面在說什麼:RMSE 能綜合評估 Precision 和 Recall。
為什麼不對:RMSE(Root Mean Squared Error)是迴歸任務(預測連續值,如房價、溫度)的評估指標,衡量預測值和真實值之間的距離。Precision 和 Recall 是分類任務的概念,RMSE 根本無法計算分類任務的 Precision 和 Recall。完全用錯場景的指標。
誰會選錯:知道 RMSE 是「常見評估指標」但不清楚它適用於迴歸而非分類的人。看到「均方根誤差」有個「誤差」就覺得適合用來衡量任何錯誤。
字面在說什麼:MSE 能綜合評估 Precision 和 Recall。
為什麼不對:MSE(Mean Squared Error)和 RMSE 一樣,是迴歸任務的指標,而非分類指標。MSE = 預測值和真實值差的平方的平均,和分類任務的 TP/FP/FN 沒有任何關係。選項 B 和 C 都是在考「你有沒有搞清楚迴歸指標和分類指標的區別」。
誰會選錯:和選 B 的人同類型:把所有「有個誤差公式的指標」都認為可以評估分類效果,對指標的適用場景缺乏了解。
同個考點下次怎麼變形
直覺:F1 分數的最大值和最小值分別是多少?什麼情況下各自成立?
答案:最大值 1.0:Precision = 1.0 且 Recall = 1.0,所有詐騙都抓到,且沒有冤枉任何好人。最小值 0:Precision = 0 或 Recall = 0,例如所有預測都是錯的(Precision = 0),或漏掉所有正例(Recall = 0)。F1 = 0 代表模型完全沒有實用價值。
直覺:兩個模型:模型 A(P=0.9, R=0.9),模型 B(P=0.5, R=0.5)。F1 誰更高?
答案:模型 A 的 F1 = 2×0.81/1.8 = 0.9,模型 B 的 F1 = 2×0.25/1.0 = 0.5。模型 A 明顯更好。這道題的意義是:F1 和 Precision/Recall 是同方向的,不是「兩者都差」就能騙過 F1。F1 只能保護你不被「一高一低的假象」欺騙。
直覺:Macro-F1 和 Micro-F1 有什麼差?什麼時候用哪個?
答案:Macro-F1:對每個類別各算 F1,再取平均,每個類別權重相等。適合類別數量差異大(如少數族裔分類),確保小類別也被重視。Micro-F1:先把所有類別的 TP/FP/FN 加總,再算 F1,大類別主導結果。適合整體效能評估。類別不平衡時,Macro 和 Micro 的差距會很大。
直覺:資訊檢索(Information Retrieval,如搜尋引擎)也用 Precision 和 Recall 嗎?
答案:是的,搜尋引擎裡:Precision = 搜尋結果裡有多少比例是真正相關的文件;Recall = 所有相關文件裡有多少被找出來了。搜尋引擎更在乎 Precision(不要給垃圾結果),學術研究更在乎 Recall(不要漏掉重要文獻)。F1 在資訊檢索評估中也很常用。
直覺:什麼情況下應該用 Fβ(β ≠ 1)而非 F1?
答案:當 Precision 和 Recall 的重要程度不一樣時。醫療篩檢(漏掉病人代價極高):用 F2(β=2),讓 Recall 的重量是 Precision 的四倍。垃圾郵件過濾(誤刪重要郵件代價高):用 F0.5(β=0.5),讓 Precision 更重要。一般情況才用 F1(β=1,兩者同等重要)。
想再往下看,這 5 個
- F1 分數(F1 Score)核心考點:Precision 和 Recall 的調和平均數,任一指標接近 0 都會大幅拉低 F1,是同時兼顧兩者的標準指標。
- 精確率(Precision)F1 的組成分之一,衡量模型預測為正例中真正為正例的比例,與 Recall 存在此消彼長的權衡關係。
- 召回率(Recall)F1 的另一組成分,衡量所有真實正例中被模型正確找出的比例,與 Precision 共同決定 F1 的值。
- ROC 曲線(Receiver Operating Characteristic)另一個綜合評估指標,以 True Positive Rate vs False Positive Rate 描繪模型表現,常與 F1 並用作比較。
- 準確率(Accuracy)最直覺的分類指標,但在類別不平衡時失效,是 F1 設計要解決的問題,易與 F1 混淆的對照概念。