經典與統計學習

樸素貝氏(naive Bayes)

/ nah-EEV BAYZ /

樸素貝氏是一個又快、又出奇有效的分類器,建立在一條用證據更新信念的、已有250年歷史的法則之上。它最經典的活兒是過濾垃圾郵件:郵件裡的每個詞都是一條線索。「威而鋼」一詞把你的信念往垃圾郵件那邊推;「會議」「發票」又把它推回正常郵件。樸素貝氏把所有這些小小的推力加在一起,然後發問:給定眼前這一袋詞,哪一類——垃圾還是非垃圾——更有可能產生它?

它依託於貝氏定理,那條把概率「翻轉」過來的公式:它從訓練資料裡知道「威而鋼」在垃圾郵件中出現得多頻繁,再用這一點反推——一封含有「威而鋼」的郵件,是垃圾的可能性有多大。「樸素」二字,是個故意為之的粗糙捷徑:它假裝每條線索都彼此獨立——看見「免費」絲毫不能告訴你「賺錢」是否也會出現。這在真實語言裡明明是錯的,可這模型偏偏仍然好用得驚人,因為只為挑出那個最可能的類別,這些粗略的概率通常已經夠用。

它的長處是快、簡單,且對訓練資料的胃口極小——它曾是早期垃圾郵件過濾器的中堅,至今仍是文本分類的一個強基線。它吃力的地方,是凡其「獨立」的假裝咬得很狠之處,或是當你需要輸出的概率本身準確、而不只是勝出的類別正確時:因為它把相關的線索重複計數,它給出的置信度數字往往離譜地誇大,哪怕最終的標籤是對的。

訓練資料顯示,「獎品」出現在30%的垃圾郵件裡,卻只出現在1%的正常郵件裡。一封新郵件含有「獎品」「中獎者」「領取」——每個詞都在垃圾郵件裡常見得多。樸素貝氏把這些線索相乘(假裝它們彼此獨立),得出結論:是垃圾郵件,概率壓倒性地高。

每個詞都投上一票;那個「樸素」的跳躍,就是把這些詞當作互不相干。

「獨立」這個假設幾乎總是錯的——詞總是結伴而行、彼此相關——可這分類器照樣好使,因為哪怕用粗糙的算法,正確的類別也常常勝出。請更信它的標籤、而非它的概率:那些置信度百分比通常都過於自信。

又稱
naive Bayes classifier朴素贝叶斯樸素貝氏朴素贝叶斯分类器