要明白用貝葉斯模型進行垃圾郵件處理的原理首先要明確什麼是貝葉斯模型。
顧名思義貝葉斯模型就是基於機率理論中的貝葉斯公式而得到的模型,貝葉斯公式衡量了某個事件A在事件B發生時發生的機率,其基本公式如下所示:
基於以上這個數學公式,我們可以透過簡單的變換得到貝葉斯模型,即將公式中的A用Y來替換,公式中的B用X1,...,Xn來替換,X1,...,Xn為所要預測的資料,Y為預測的類別,即模型的基本公式可寫如下:
上個等式的右側的分母其實就相當於一個歸一化的操作,分子中 P(X1,X2,...,Xn|Y)為給定類別為Y時X1,X2,...,Xn發生的機率,P(Y)為先驗,即在整個樣本空間中,P(Y)發生的機率。
貝葉斯模型中較為常見的模型是樸素貝葉斯模型,所謂的樸素貝葉斯模型,就是說這個貝葉斯模型很簡單。那麼貝葉斯模型是怎樣變簡單的呢,其實就是多了一個認為各個特徵獨立的假設,即:
那麼基於這個假設,並假定資料空間一共要劃分為兩類c1/c2的時候,那麼就會分別得到下述公式:
一般來說模型的分母僅僅為歸一化的操作,所以P(Y|X1,X2,...,Xn)的機率正比於模型的分子,即:
基於樸素貝葉斯模型進行的垃圾郵件分類問題本質上屬於一個文字分類的問題。訓練資料包含垃圾郵件、正常郵件和測試郵件,每一個檔案都可以透過分詞將文字分成若干個組成這個文字的詞,那麼垃圾郵件的分類問題就轉換成了根據描述這個檔案的詞(x1,...,xn)來判別檔案所屬的類別c。根據上述公式(6),我們需要得到的是P(xi|c),也就是在已知郵件是垃圾郵件的情況下看某個詞xi發生的機率。有了這個思路就很好操作了,可以透過在垃圾郵件類中包含的垃圾郵件中統計各個詞出現的詞頻作為P(xi|c1)的估計,在正常郵件類中包含的正常郵件中統計各個詞出現的詞頻作為P(xi|c2)的估計(c1為垃圾郵件,c2為正常郵件)。然後當拿來一封未標記的郵件時對每個詞是垃圾郵件中包含詞的機率P(c1|xi)進行統計,公式如下:
如果這個詞沒有在之前標記的垃圾郵件/正常郵件中出現過,就可以令P(xi|c1)或P(xi|c2)為很小的一個數,例如0.04。這樣每個郵件的每個詞就有了他們屬於垃圾郵件詞的機率,把這些詞按照機率的大小從大往小進行排列,取前N(N人為給定)個對郵件影響最大的詞的機率乘在一起,就是這個郵件是垃圾郵件的機率。
要明白用貝葉斯模型進行垃圾郵件處理的原理首先要明確什麼是貝葉斯模型。
1.貝葉斯模型顧名思義貝葉斯模型就是基於機率理論中的貝葉斯公式而得到的模型,貝葉斯公式衡量了某個事件A在事件B發生時發生的機率,其基本公式如下所示:
基於以上這個數學公式,我們可以透過簡單的變換得到貝葉斯模型,即將公式中的A用Y來替換,公式中的B用X1,...,Xn來替換,X1,...,Xn為所要預測的資料,Y為預測的類別,即模型的基本公式可寫如下:
上個等式的右側的分母其實就相當於一個歸一化的操作,分子中 P(X1,X2,...,Xn|Y)為給定類別為Y時X1,X2,...,Xn發生的機率,P(Y)為先驗,即在整個樣本空間中,P(Y)發生的機率。
貝葉斯模型中較為常見的模型是樸素貝葉斯模型,所謂的樸素貝葉斯模型,就是說這個貝葉斯模型很簡單。那麼貝葉斯模型是怎樣變簡單的呢,其實就是多了一個認為各個特徵獨立的假設,即:
那麼基於這個假設,並假定資料空間一共要劃分為兩類c1/c2的時候,那麼就會分別得到下述公式:
一般來說模型的分母僅僅為歸一化的操作,所以P(Y|X1,X2,...,Xn)的機率正比於模型的分子,即:
2.基於貝葉斯模型的垃圾郵件分類基於樸素貝葉斯模型進行的垃圾郵件分類問題本質上屬於一個文字分類的問題。訓練資料包含垃圾郵件、正常郵件和測試郵件,每一個檔案都可以透過分詞將文字分成若干個組成這個文字的詞,那麼垃圾郵件的分類問題就轉換成了根據描述這個檔案的詞(x1,...,xn)來判別檔案所屬的類別c。根據上述公式(6),我們需要得到的是P(xi|c),也就是在已知郵件是垃圾郵件的情況下看某個詞xi發生的機率。有了這個思路就很好操作了,可以透過在垃圾郵件類中包含的垃圾郵件中統計各個詞出現的詞頻作為P(xi|c1)的估計,在正常郵件類中包含的正常郵件中統計各個詞出現的詞頻作為P(xi|c2)的估計(c1為垃圾郵件,c2為正常郵件)。然後當拿來一封未標記的郵件時對每個詞是垃圾郵件中包含詞的機率P(c1|xi)進行統計,公式如下:
如果這個詞沒有在之前標記的垃圾郵件/正常郵件中出現過,就可以令P(xi|c1)或P(xi|c2)為很小的一個數,例如0.04。這樣每個郵件的每個詞就有了他們屬於垃圾郵件詞的機率,把這些詞按照機率的大小從大往小進行排列,取前N(N人為給定)個對郵件影響最大的詞的機率乘在一起,就是這個郵件是垃圾郵件的機率。