假設您有一個用於垃圾電子郵件偵測的邏輯迴歸模型,該模型會預測介於 0 和 1 之間的值,代表特定電子郵件為垃圾郵件的機率。預測值為 0.50 表示電子郵件為垃圾郵件的可能性為 50%,預測值為 0.75 表示電子郵件為垃圾郵件的可能性為 75%,以此類推。
您想在電子郵件應用程式中部署這個模型,將垃圾郵件篩除至不同的郵件資料夾。不過,您必須轉換模型的原始數值輸出內容 (例如 0.75
) 分類為「垃圾內容」或「非垃圾內容」。
如要進行這項轉換,您必須選擇門檻機率,也就是分類門檻。機率高於門檻值的示例會指派給正類別,也就是您要測試的類別 (此處為 spam
)。機率較低的示例會指派給負類別,也就是替代類別 (此處為 not spam
)。
按這裡進一步瞭解分類門檻
您可能會想知道:如果預測分數等於分類門檻 (例如分數為 0.5,分類門檻也為 0.5),會發生什麼情況?這類情況的處理方式取決於為分類模型選擇的具體實作方式。如果分數和閾值相等,Keras 程式庫會預測負向類別,但其他工具/架構可能會以不同方式處理這個情況。
假設模型為一封電子郵件評分 0.99,預測該郵件有 99% 的機率是垃圾郵件,而另一封郵件評分 0.51,預測該郵件有 51% 的機率是垃圾郵件。如果將分類閾值設為 0.5,模型會將兩封電子郵件都歸類為垃圾郵件。如果將閾值設為 0.95,只有得分 0.99 的電子郵件才會被歸類為垃圾郵件。
雖然 0.5 似乎是直覺的閾值,但如果某種錯誤分類的成本高於其他類型,或是類別不平衡,就不適合使用這個閾值。如果只有 0.01% 的電子郵件是垃圾郵件,或是將合法電子郵件歸檔的情況比垃圾郵件進入收件匣更糟糕,那麼將模型認為至少有 50% 機率為垃圾郵件的郵件標示為垃圾郵件,就會導致不理想的結果。
混淆矩陣
機率分數並非真實值或基準真相。二元分類器的每個輸出結果都有四種可能的結果。以垃圾郵件分類器範例來說,如果您將真值列為欄,模型的預測結果列為欄,則結果會是下列表格,稱為混淆矩陣:
實際陽性 | 實際陰性 | |
---|---|---|
預測為陽性 | 真陽性 (TP):垃圾郵件正確歸類為垃圾郵件。這些垃圾郵件會自動傳送至垃圾郵件資料夾。 | 誤判為垃圾郵件 (FP):將非垃圾郵件誤判為垃圾郵件。這些是會進入垃圾郵件資料夾的正常電子郵件。 |
預測為否 | 假陰性 (FN):垃圾郵件誤判為非垃圾郵件。這些是垃圾郵件,但未被垃圾郵件篩選器攔截,因此會傳送到收件匣。 | 真陰性 (TN):系統正確將非垃圾郵件歸類為非垃圾郵件。這些是直接傳送至收件匣的正常電子郵件。 |
請注意,每個資料列的總和會列出所有預測的正例 (TP + FP) 和所有預測的負例 (FN + TN),不論其有效性為何。同時,每個資料欄的總和會列出所有真陽性 (TP + FN) 和所有真陰性 (FP + TN),無論模型分類為何。
如果實際正例總數與實際負例總數相差太多,資料集就會失衡。不平衡資料集的例子可能是成千上萬張雲朵相片,其中您感興趣的罕見雲朵類型 (例如捲雲) 只出現幾次。
門檻值對真陽性、偽陽性和偽陰性的影響
不同的門檻通常會產生不同的真陽性、偽陽性、真陰性和偽陰性數量。以下影片說明為何如此。
請嘗試自行變更門檻。
這個小工具包含三個玩具資料集:
- 分開:正例和負例通常有明確的差異,且大多數正例的分數高於負例。
- 未分離:許多正面範例的分數低於負面範例,許多負面範例的分數高於正面範例。
- 不平衡,只包含少數正面類別的示例。