混淆矩陣
混淆矩陣是一個表格,用于總結分類模型在測試集上的預測結果,特別是當真實標簽已知時。它將預測結果分為四種情況(記憶:實際和預測一致為True,預測為正是Positive):
真正例:?實際為正類,預測也為正類 (
True Positive, TP
)假正例:?實際為負類,但預測為正類 (
False Positive, FP
)?假反例:?實際為正類,但預測為負類 (
False Negative, FN
)?真反例:?實際為負類,預測也為負類 (
True Negative, TN
)
真實標簽 \ 預測標簽 | 正類 (Positive) | 負類 (Negative) |
---|---|---|
正類 (Positive) | TP | FN |
負類 (Negative) | FP | TN |
?準確率(Accuracy)
定義:?模型預測正確(TP+TN)的樣本數占總樣本數(TP+FP+FN+TN)的比例。最直觀的指標。
計算公式:
Accuracy = (TP + TN) / (TP + FP + FN + TN)
意義:
衡量模型整體預測正確的比例。
優點:?簡單易懂。
缺點:?在數據不平衡時容易產生誤導。例如,在疾病檢測中,健康人(負類)占99%,病人(正類)占1%。一個將所有樣本都預測為健康的模型,準確率也能達到99%,但這個模型對于檢測病人是完全無效的。此時需要更細致的指標。
適用場景:?當正負類樣本比例大致相同時,準確率是一個合理的指標。
精確率(Precision)
定義:?在模型預測為正類(TP+FP)的樣本中,實際也是正類(TP)的樣本所占的比例。衡量預測的“精準度”或“可靠性”。
計算公式:
Precision = TP / (TP + FP)
意義:
關注的是預測結果的質量。高精確率意味著模型預測為正類的樣本中,誤報(FP)的比例低。
核心問題:?當模型說某個樣本是正類時,這個判斷有多可信?
適用場景:?當需要盡量減少“假警報”或“誤報”時非常重要。
垃圾郵件檢測:?將正常郵件誤判為垃圾郵件(FP)很糟糕。需要高精確率,確保標記為垃圾郵件的郵件確實是垃圾郵件。
推薦系統:?向用戶推薦的商品,希望推薦列表中的商品用戶確實感興趣(高TP),避免推薦不相關的商品(低FP)。
?召回率(Recall)
定義:?在實際為正類(TP+FN)的樣本中,被模型正確預測為正類(TP)的樣本所占的比例。衡量模型的“查全率”或“覆蓋度”。
計算公式:
Recall = TP / (TP + FN)
意義:
關注的是模型找出所有正類樣本的能力。高召回率意味著模型漏報(FN)的比例低。
核心問題:?在所有實際的正類樣本中,模型成功找出了多少?
適用場景:?當需要盡量減少“漏檢”或“錯過”正類樣本時非常重要。
疾病診斷:?漏掉一個真正的病人(FN)后果可能很嚴重。需要高召回率,盡可能找出所有患病者。
欺詐檢測:?漏掉一個欺詐交易(FN)會導致損失。需要高召回率,盡可能識別出所有欺詐行為。
信息檢索:?希望搜索引擎返回的結果盡可能包含所有相關的文檔(高TP),避免遺漏(FN)。
F1 分數(F1 Score)
定義:?精確率和召回率的調和平均數(倒數平均數:總體各統計變量倒數的算術平均數的倒數)。旨在用一個分數綜合反映模型的精確率和召回率。1/((1/Precision+1/Recall)/2).
計算公式:
F1 Score = 2 * (Precision * Recall) / (Precision + Recall)
調和平均數的特點:更重視較小值。只有當精確率和召回率都高時,F1分數才會高。
意義:
提供一個在精確率和召回率之間取得平衡的單一指標。
特別適用于數據不平衡的情況,或者當同時關注精確率和召回率且需要找到一個折中點時。
比簡單的算術平均更能反映模型的整體性能(當精確率和召回率差異較大時)。
適用場景:
當需要同時考慮精確率和召回率,且沒有明確偏向哪一個更重要時。
評估在不平衡數據集上模型的綜合性能。
比較不同模型時的一個常用綜合指標。