樸素貝葉斯分類器給出的概率大於 1
我正在嘗試了解有關如何在基於此鏈接的垃圾郵件過濾中使用樸素貝葉斯分類器的示例。這篇文章挑選了兩個他們認為經常出現在垃圾郵件中的“壞”詞,然後根據這些詞的存在來計算郵件是垃圾郵件的概率。我試圖將此示例擴展到三個單詞,但我得到的概率大於 1,而且我看不出我做錯了什麼。
兩個字的情況:
我正在做的是假裝在 100% 的垃圾郵件中存在一個超級糟糕的詞“foobar”。樸素貝葉斯公式會這樣擴展嗎?
三字案例:
讓我明白的是,在分子中和是之間的某個數字和這樣當我求解整個方程時,除以分母導致我的答案迅速增長(甚至超越)。這種誇張的表現可以在.
我是否通過讓“foobar”100% 地出現在垃圾郵件中來“破壞”算法?
您不會因為出現在的消息。您用於概率的論壇是錯誤的。對於兩個單詞的情況,這裡有一個例子來說明原因。假設你的話是,, 和並且您有兩條消息可用於構建分類器。第一條消息是垃圾郵件,內容為
a b
. 第二封郵件不是垃圾郵件,內容為x
. 然後作為唯一包含和是垃圾郵件。但因為二分之一的郵件是垃圾郵件。還,和. 還,因為兩條消息中的一條包含,並且類似地. 所以你的公式的右手邊是
這不是概率。正確的公式是
樸素貝葉斯假設是和考慮到郵件是垃圾郵件(並且還考慮到郵件不是垃圾郵件),它們會獨立出現。在這個例子中這恰好是真的,樸素貝葉斯分類器背後的想法是假設它是真的,在這種情況下,公式變為
你的錯誤是假設分母也變成但這不是真的,因為和不獨立;僅當您知道郵件是否為垃圾郵件時,它們才是獨立的。你可以通過詢問看到它們不是獨立的:“假設我知道一條消息包含. 這是否告訴我有關它是否包含的任何新信息?” 答案是肯定的,因為唯一包含還包含. (示例結束。)
之所以會產生混淆,是因為人們通常不會費心在樸素貝葉斯公式中寫分母,因為它不會影響計算,除了比例因子對於垃圾郵件和非垃圾郵件相同。你會經常看到寫的公式
其中比例常數恰好是. 但是在對新消息進行分類時,您可以忽略此常數。您只需計算右手邊
和
然後根據哪個更大,將其分類為垃圾郵件或非垃圾郵件。