完整定義
精確率(Precision)是所有被模型預測為正類的樣本中,真正屬於正類的比例;召回率(Recall,又稱靈敏度或查全率)是所有實際為正類的樣本中,被模型正確識別出來的比例。兩者之間通常存在取捨關係(Trade-off),實務中常用 F1 Score 作為兩者的調和平均數。
精確率(Precision)與召回率(Recall)是分類模型評估中最重要的兩個基礎指標,理解它們需要從混淆矩陣(Confusion Matrix)開始。
混淆矩陣的四個基本量
對於二元分類(正類 Positive / 負類 Negative):
- TP(True Positive,真正例):模型預測為正、實際也為正。
- FP(False Positive,假正例):模型預測為正、但實際為負(誤報,Type I Error)。
- TN(True Negative,真負例):模型預測為負、實際也為負。
- FN(False Negative,假負例):模型預測為負、但實際為正(漏報,Type II Error)。
精確率(Precision)
公式:Precision = TP / (TP + FP)
直觀含義:「模型說『這是正類』的時候,有多少次是對的?」
也稱為查準率或陽性預測值(Positive Predictive Value, PPV)。
召回率(Recall)
公式:Recall = TP / (TP + FN)
直觀含義:「所有實際的正類樣本,模型找出了幾個?」
也稱為靈敏度(Sensitivity)或真正例率(True Positive Rate, TPR)。
精確率與召回率的取捨
在給定模型下,改變分類閾值(Threshold)會影響精確率和召回率,且二者通常反向變動:
- 提高閾值(更保守地預測正類)→ 精確率↑,召回率↓(預測正類更謹慎,但漏掉更多真正的正類)。
- 降低閾值(更積極地預測正類)→ 召回率↑,精確率↓(找回更多正類,但也帶入更多誤報)。
這種取捨在不同業務場景中有不同的優先順序:
- 醫療癌症篩檢:寧可多查(假陽性),不能漏查(假陰性)→ 優先高召回率。
- 垃圾郵件偵測:寧可讓少數垃圾郵件漏網(低召回率),也不能把重要郵件誤判為垃圾(低精確率)→ 優先高精確率。
- 詐騙偵測:視漏報與誤報的業務代價決定。
F1 Score
當精確率和召回率都很重要時,常用 F1 Score 作為兩者的調和平均數(Harmonic Mean):
F1 = 2 × (Precision × Recall) / (Precision + Recall)
調和平均數相較算術平均數,對極端值更為懲罰:若精確率或召回率任一極低,F1 也會很低,即使另一個很高。
若希望給召回率更高的權重(業務上漏報代價更大),可使用 F_β Score:
F_β = (1 + β²) × (Precision × Recall) / (β² × Precision + Recall)
β > 1 時召回率權重更高,β < 1 時精確率權重更高。
多類別分類的擴展
多類別分類任務中,精確率和召回率需要對每個類別分別計算,再進行聚合:
- Macro 平均:對所有類別分別計算指標後取算術平均,對每個類別同等重視(即使某類很少見)。
- Micro 平均:將所有類別的 TP、FP、FN 全部加總後再計算,受樣本數多的類別影響更大。
- Weighted 平均:按各類別的樣本數量加權,適合類別不平衡場景。
PR 曲線(Precision-Recall Curve)
透過改變分類閾值從 0 到 1,在每個閾值計算對應的精確率和召回率,繪製成曲線。PR 曲線下面積(AUPRC)可作為模型整體性能的單一指標,在類別不平衡時比 ROC-AUC 更具區分力,因為 PR 曲線不受大量真負例(TN)的影響。
與準確率(Accuracy)的比較
準確率 = (TP + TN) / (TP + TN + FP + FN),衡量所有樣本中被正確分類的比例,簡單直觀但不適合不平衡資料(見類別不平衡條目)。精確率和召回率專注於正類,不受大量負類的稀釋,是不平衡分類任務的常用選擇評估維度。
常見問題
核心問題是:「假陽性(誤報)和假陰性(漏報)哪個代價更高?」在醫療癌症篩檢中,漏報(把有病的人診斷為無病)的代價遠高於誤報(把健康人誤判為需要進一步檢查),所以優先追求高召回率,允許較低的精確率。在內容審核(如色情內容偵測)中,誤報(誤刪正常內容)可能引發用戶投訴和法律風險,因此優先追求高精確率,允許部分違規內容漏網。在電商推薦系統中,若用戶的注意力有限,推薦結果中每個結果都要準確,精確率更重要。建議將業務目標轉化為具體的精確率 / 召回率最低要求,再調整閾值或選擇模型。
F1 Score 是精確率和召回率的調和平均數(Harmonic Mean),公式為 2×P×R/(P+R)。使用調和平均而非算術平均的原因是:調和平均數對極端值的懲罰更重。假設精確率為 1.0、召回率為 0.01,算術平均為 0.505,看起來還不錯;但調和平均(F1)只有約 0.02,更真實地反映出模型在召回率上幾乎失效的事實。也就是說,只有精確率和召回率都比較高時,F1 Score 才會高;如果其中一個很低,F1 就會被拉低到接近那個低值。這正是 F1 的設計初衷:同時要求兩個指標都要好,不允許以一換一。
ROC 曲線繪製的是不同閾值下真正例率(召回率)vs. 假正例率(FPR = FP/(FP+TN))的曲線;AUPRC(PR 曲線下面積)繪製的是精確率 vs. 召回率的曲線。在類別嚴重不平衡的情境下,ROC-AUC 可能過於樂觀:因為負類樣本數量巨大,即使 FP 很多,FPR 仍可能很低,使 ROC 曲線看起來很好,但精確率實際上極差。AUPRC 不受真負例(TN)影響,更聚焦在少數類(正類)的識別能力上,能更真實地反映模型在不平衡場景中的實際價值。因此,在詐騙偵測、罕見疾病診斷等不平衡分類任務中,建議以 AUPRC 作為主要評估指標。
精確率 = TP / (TP + FP),召回率 = TP / (TP + FN)。TP 是預測為正且真的為正,FP 是預測為正但其實為負,FN 是預測為負但其實為正。例如模型抓出 50 筆可疑交易,其中 40 筆真的是詐騙,而詐騙總共有 80 筆,精確率是 0.8,召回率是 0.5。
精確率問的是「模型說是的那些,有幾成真的是」,召回率問的是「真正是的那些,模型抓到幾成」。用撈魚來比喻,精確率看網子裡撈上來的有多少是目標魚,召回率看池子裡的目標魚有多少被撈上來。
在搜尋系統裡,精確率是回傳的文件中相關文件所占的比例,召回率是所有相關文件中被回傳的比例。因為搜尋結果有先後順序,實務上常只看前 k 筆,例如 Precision@10 就是前 10 筆結果中相關文件的比例。
相關術語
來源
參考來源:en.wikipedia.org
其他格式:Markdown 版本