貝葉斯決策理論要求計算兩個概率p1(x,y)和p2(x,y)
1.如果p1(x,y)>p2(x,y),那麼類別為1
2.如果p1(x,y)但這兩個準則並不是貝葉斯決策理論的所有內容。使用p1()和p2()只是為了盡可能簡化描述,而真正需要計算和比較的是p(c1|x,y)和p(c2|x,y)。這些符號所代表的具體意義是:給定某個由x、y表示的資料點,那麼該資料點來自類別c1的概率是多少?資料點來自類別c2的概率又是多少?注意這些概率與剛才給出的概率p(x,y|c1)並不一樣,不過可以使用貝葉斯準則來交換概率中條件和結果。具體地,應用貝葉斯準則得到:
p(ci|x,y)=p(x,y|ci)*p(ci)/p(x,y)
使用這些定義,可以定義貝葉斯分類準則為:
1.如果p(c1|x,y)>p(c2|x,y),那麼屬於類別c1
1.如果p(c1|x,y)樸素貝葉斯分類器中的另乙個假設是,每個特徵同等重要。
樸素貝葉斯分類器通常有兩種實現方式:一種基於貝努利模型實現,一種基於多項式模型實現。前一種方式中並不考慮詞在文件**現的次數,只考慮出不出現,因此在這個意義上相當於假設詞是等權重的。
訓練演算法:從次向量計算概率
我們重寫貝葉斯準則,將之前的x、y替換為w。w表示乙個向量,即它由多個數值組成。
p(ci|w)=p(w|ci)p(c1)/p(w)
該函式的偽**如下:
計算每個類別中的文件數目
計算每片訓練文件:
對每個類別:
如果詞條**現在文件中—>增加該詞條的計數值
增加所有詞條的計數值
對每個類別:
對每個詞條:
將該詞條的數目除以總詞條數目得到條件概率
返回每個類別的條件概率
小結對於分類而言,使用概率有時比使用硬規則更為有效。貝葉斯概率及貝葉斯準則提供了一種利用已知值來估計未知概率的有效方法。
可以通過特徵之間的條件獨立假設,降低對資料量的需求。獨立性假設是指乙個詞的出現概率並不依賴文件中的其他詞。當然我們也知道這個假設過於簡單。這就是之所以稱為樸素貝葉斯的原因。儘管條件獨立性假設並不正確,但是樸素貝葉斯仍然是一種有效的分類器。
利用現代程式語言來實現樸素貝葉斯時需要考慮很多實際因素。下溢位就是其中乙個問題,它可以通過對概率取對數來解決。詞帶模式在解決文件分類問題上比詞集模型有所提高。還有其他一些方面的改進,比如說移除停用詞。
樸素貝葉斯
樸素貝葉斯演算法是一種基於概率統計的分類方法,它主要利用貝葉斯公式對樣本事件求概率,通過概率進行分類。以下先對貝葉斯公式做個了解。對於事件a b,若p b 0,則事件a在事件b發生的條件下發生的概率為 p a b p a b p b 將條件概率稍作轉化即可得到貝葉斯公式如下 p a b p b a ...
樸素貝葉斯
1.準備資料 從文字中構建詞向量 2.訓練演算法 從詞向量計算概率 3.測試演算法 儲存為 bayes.py 檔案 參考 coding utf 8 from numpy import 文字轉化為詞向量 def loaddataset postinglist my dog has flea probl...
樸素貝葉斯
機器學習是將資料轉化為決策面的過程 scikit learn縮寫為sklearn 訓練乙個分類器,學習之後 其處理的準確性 def nbaccuracy features train,labels train,features test,labels test from sklearn.bayes ...