JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

光看準確率遠遠不夠

一個模型可以有 99% 的時間都答對,卻依然危險得毫無用處。來認識混淆矩陣、精確率、召回率和 F1——這些指標才真正告訴你模型到底在做什麼。

99% 的陷阱

假設你造了一個模型來篩查一種罕見病,這種病每 100 人裡只有 1 人患上。你訓練它、測試它,它報告 99% 的準確率。你或許想開香檳慶祝了。但有一個根本沒學到任何東西的模型也能打平這個成績:一行程式碼,對所有人都說「健康」。既然 100 人裡確實有 99 人是健康的,這條偷懶的規則同樣有 99% 的準確率——而它漏掉了每一個真正的病人。準確率只是數了預測與真相吻合的次數,在嚴重失衡的資料上,這個數字可以既響亮又毫無意義。

這正是被稱為類別不平衡問題的核心:當一種結果遠比另一種常見時,一個籠統的總分會把你唯一在乎的那些錯誤藏起來。解決之道一開始並不是換個更好的模型——而是換個更好的問題。我們不再問「它多久對一次?」,而是問「它對的是什麼、錯又錯在哪個方向?」要回答這個問題,需要一個能把那單一數字拆開來看的工具。

混淆矩陣:四個格子

在二分類問題裡,每一次預測都會落進四個格子之一,而混淆矩陣就是把它們逐個計數的那張表格。對有兩種對法,錯也有兩種錯法。真陽性是模型正確標記為患病的病人。真陰性是被正確判為健康的健康人。危險的是那兩類錯誤:假陽性是被錯誤標記的健康人(虛驚一場),假陰性是被錯誤放行的病人(漏診)。準確率把這四類混作一團;矩陣則把它們分得清清楚楚。

                Predicted
              Sick    Healthy
Actual Sick    TP=8     FN=2     <- 2 patients MISSED
       Healthy FP=5     TN=985

(rare disease: only 10 sick out of 1000)
我們這個疾病篩查器的四個格子。準確率很高(993/1000),卻漏掉了 10 個真病人裡的 2 個。

精確率與召回率:兩種不同的擔憂

從這四個格子裡,衍生出最重要的兩個指標。精確率問的是:模型標記為陽性的所有東西裡,有多少真的是陽性?它等於真陽性除以全部陽性預測——回答的是「它拉響警報時,我能信嗎?」召回率問的恰好相反:所有真正是陽性的東西裡,模型抓到了多少?它等於真陽性除以全部實際陽性——回答的是「它放跑了多少?」

你該在乎哪一個,完全取決於一個錯誤的代價有多大。對我們的疾病篩查器來說,漏掉一個病人(假陰性)可能致命,而虛驚一場不過是多做一次檢查——所以我們要的是高召回率,哪怕犧牲一些精確率。把利害關係反過來看垃圾郵件過濾器:錯誤地把一封重要郵件扔進垃圾桶(假陽性)比放過一封垃圾郵件更糟,所以那裡我們倚重精確率。世上沒有放之四海皆好的指標;該用哪個,由任務說了算。

F1:一個誠實搭出來的數字

有時候你確實想要一個單一分數,用來給模型排名或隨時間監控。F1 分數是把精確率和召回率結合起來的誠實做法:它取的是二者的調和平均,而不是普通的算術平均。調和平均會懲罰失衡——只要精確率或召回率有一個接近零,F1 也會被拽到接近零。所以你沒法靠在一項上拿滿分、另一項卻忽略不計來鑽空子,這正是它在不平衡資料上勝過準確率的原因。

用這個視角去審視我們那個偷懶的「人人都健康」模型,它立刻就垮了。它一個真病人都沒抓到,所以召回率是 0,於是 F1 也是 0——儘管準確率還是閃亮的 99%。這個指標終於把那個總分藏起來的真相說了出來。但也別把 F1 當成萬能的判決:它給精確率和召回率賦予同等權重,這未必和你真實的代價相符,而且它完全無視真陰性。它是把更鋒利的工具,而不是蓋棺定論的那句話。

選指標時別騙了自己

誠實評估的功夫,是一段在你信任任何數字之前要先跑一遍的短循環。它從你兩類錯誤各自的代價出發,止於一個有意挑選出來的指標——而不是隨便哪個碰巧看起來最漂亮的那個。

  1. 寫下一個假陽性和一個假陰性各自的代價——用現實世界的話說,而不是用分數。
  2. 檢查類別是否平衡。如果某一類很罕見,立刻把準確率從你的清單上劃掉。
  3. 在留出的測試集上構建混淆矩陣,在算任何東西之前先把四個格子都看一遍。
  4. 挑選與代價相符的指標:漏檢最傷時用召回率,虛警最傷時用精確率,需要一個均衡數字時用 F1。
  5. 和一個笨拙的基線——「永遠預測多數類」的模型——作比較,這樣你才知道你的分數反映的是真本事,而不只是資料的失衡。

這些指標會貫穿本階後面的內容。當你在排行榜上比較各個條目時,榜首分數往往是準確率或單一的 F1——而這裡講的道理,恰好說明了為什麼榜單排名會美化一個在關鍵樣本上悄悄失手的模型。誠實的度量不是真正工作之前的一道手續;在那些不平衡、高風險的問題上,它本身就是工作。