樸素貝葉斯算法文本分類原理

本文主要簡單研究一下樸素貝葉斯算法是如何對文本進行分類的。html

貝葉斯算法

貝葉斯方法把計算「具備某特徵的條件下屬於某類」的機率轉換成須要計算「屬於某類的條件下具備某特徵」的機率,屬於有監督學習。算法

後驗機率 = 先驗機率 x 調整因子

這就是貝葉斯推斷的含義。咱們先預估一個"先驗機率",而後加入實驗結果,看這個實驗究竟是加強仍是削弱了"先驗機率",由此獲得更接近事實的"後驗機率"。機器學習

公式

p(yi|x) = p(yi) * p(x|yi) / p(x)
p(所屬類別yi|某種特徵x) = p(所屬類別yi) * p(某種特徵x|所屬類別yi) /p(某種特徵x)

根據公式就能夠把計算「具備某種特徵的條件下屬於某個類別」的機率轉換爲:「屬於某種類別的條件下,具備某種特徵」的機率。函數

  • 先驗機率

其中p(yi)稱爲先驗機率,即在x事件發生以前,發生yi事件的機率學習

  • 後驗機率

p(yi|x)稱爲後驗機率,即在x事件發生以後,發生yi事件的機率,屬於可觀測的值ui

  • 調整因子

p(x|yi)/p(x)爲調整因子,也成爲可能性函數(Likelyhood),使得預估機率更接近真實機率code

樸素貝葉斯算法

樸素貝葉斯理論源於隨機變量的獨立性:就文本分類而言,從樸素貝葉斯的角度來看,句子中的兩兩詞之間的關係是相互獨立的,即一個對象的特徵向量中每一個維度都是相互獨立的。這是樸素貝葉斯理論的思想基礎。其流程以下htm

- 第一階段,訓練數據生成訓練樣本集:TF-IDF。
- 第二階段,對每一個類別計算P(yi)。
- 第三階段,對每一個特徵屬性計算全部類別下的條件機率p(ai|yi)。
- 第四階段,對每一個類別計算p(x|yi)p(yi)。
- 第五階段,以p(x|yi)p(yi)的最大項做爲x的所屬類別。

問題

假設x是一個待分類文本,其特徵爲{a1,a2,...,am};已知類別集合{y1,y2,...yn};求x所屬的類別對象

基本思路

若是p(yi|x) = max{p(y1|x),p(y2|x),p(y3|x),...,p(yn|x)},則x屬於yi類別

如何計算p(yi|x)

利用貝葉斯公式blog

p(yi|x) = p(x|yi)*p(yi) / p(x)
問題轉換爲對每一個類別計算p(x|yi) p(yi),以p(x|yi)p(yi)的最大項做爲x的所屬類別

計算p(x|yi)

因爲樸素貝葉斯假定各個特徵是相互獨立的,所以

p(x|yi) = p(a1|yi)*p(a2|yi)...*p(am|yi)
p(x|yi)/p(x)爲調整因子

計算p(ai|yi)

而p(ai|yi)則能夠經過訓練集(已經分好類),統計各個類別下面各類特徵的條件機率p(ai|yi)獲得。

自此求x所屬的類別p(yi|x)被一步步化解,能夠經過計算訓練集中每一個類別下各類特徵的條件機率p(ai|yi)來求解獲得。

而訓練的過程則是根據訓練集去計算調整因子的影響因素p(x|yi)=p(a1|yi)p(a2|yi)...p(am|yi),所以訓練集的好壞直接影響預測結果的準確性。

TF-IDF

TF-IDF( term frequency–inverse document frequency )是一種用於信息檢索與數據挖掘的經常使用加權方法。

TF-IDF = TF * IDF

TF-IDF的主要思想是:若是某個詞或短語在一篇文章中出現的頻率 TF 高,而且在其餘文章中不多出現(IDF值大),則認爲此詞或者短語具備很好的類別區分能力,適合用來分類。

TF

意思是詞頻( Term Frequency ),即某個詞在文件中出現的頻率

TFi = Ndti / Ndt1..n
即該詞在文檔中出現的次數/該文檔全部詞出現的次數之和

IDF

意思是逆向文件頻率( Inverse Document Frequency ),它是一個詞語重要性的調整係數,衡量一個詞是否是常見詞。若是某個詞比較少見,可是它在這篇文章中屢次出現,那麼它極可能就反映了這篇文章的特性,正是咱們所須要的關鍵詞。

某一特定詞語的IDF,能夠由總文件數目除以包含該詞語之文件的數目,再將獲得的商取對數獲得

IDF = log(Nd/Ndt)
Nd爲總文件數,Ndt爲包含該詞語的文件數目

若是一個詞很是經常使用則Ndt變大,則IDF值會變小,於是TF-IDF值也會變小,這樣就很好地削弱了經常使用詞的特徵性。

小結

樸素貝葉斯算法將問題一步步化解,最後經過訓練集求解,值得好好學習推敲。

doc

相關文章
相關標籤/搜索