一.基于貝葉斯決策理論的分類方法
? 樸素貝葉斯是經(jīng)典的機(jī)器學(xué)習(xí)算法之一,也是為數(shù)不多的基于概率論的分類算法。對于大多數(shù)的分類算法,在所有的機(jī)器學(xué)習(xí)分類算法中,樸素貝葉斯和其他絕大多數(shù)的分類算法都不同。比如決策樹,KNN,邏輯回歸,支持向量機(jī)等,他們都是判別方法,也就是直接學(xué)習(xí)出特征輸出Y和特征X之間的關(guān)系,要么是決策函數(shù),要么是條件分布。但是樸素貝葉斯卻是生成方法,該算法原理簡單,也易于實(shí)現(xiàn)。
優(yōu)點(diǎn):在數(shù)據(jù)較少的情況下仍然有效,可以處理多類別問題。
缺點(diǎn):對于輸入數(shù)據(jù)的準(zhǔn)備方式較為敏感。
適用數(shù)據(jù)類型:標(biāo)稱型數(shù)據(jù)
??樸素貝葉斯是貝葉斯決策理論的一部分,所以講述樸素貝葉斯之前有必要快速了解一下貝葉斯決策理論。? 假設(shè)現(xiàn)在我們有一個數(shù)據(jù)集,它由兩類數(shù)據(jù)組成,數(shù)據(jù)分布如下圖所示:
? ? 我們現(xiàn)在用p1(x,y)表示數(shù)據(jù)點(diǎn)(x,y)屬于類別1(圖中用圓點(diǎn)表示的類別)的概率,用p2(x,y)表示數(shù)據(jù)點(diǎn)(x,y)屬于類別2(圖中用三角形表示的類別)的概率,那么對于一個新數(shù)據(jù)點(diǎn)(x,y),可以用下面的規(guī)則來判斷它的類別:
如果 p1(x,y) > p2(x,y),那么類別為1。?
如果 p2(x,y) > p1(x,y),那么類別為2。
? ? ? ? 也就是說,我們會選擇高概率對應(yīng)的類別。這就是貝葉斯決策理論的核心思想,即選擇具有 最高概率的決策??磮D1,如果該圖中的整個數(shù)據(jù)使用6個浮點(diǎn)數(shù)來表示,并且計(jì)算類別概率的Python代碼只有兩行,那么我們應(yīng)該使用下面哪種方法來對該數(shù)據(jù)點(diǎn)進(jìn)行分類?
使用kNN算法,則需要進(jìn)行1000次距離計(jì)算,和簡單的概率計(jì)算相比,kNN的計(jì)算量太大;
使用決策樹,則需要分別沿x軸、y軸劃分?jǐn)?shù)據(jù),似乎效果并不是很好;
還有就是計(jì)算數(shù)據(jù)點(diǎn)屬于每個類別的概率,并進(jìn)行比較,這是最佳選擇。
?文章來源:http://www.zghlxwxcb.cn/news/detail-471750.html
使用樸素貝葉斯過濾垃圾郵件
使用樸素貝葉斯進(jìn)行交叉驗(yàn)證
def textParse(bigString): # 輸入字符串, 輸出單詞列表
import re
listOfTokens = re.split(r'[\W*]', bigString) # 字符串切分,去掉除單詞、數(shù)字外的任意字符串
return [tok.lower() for tok in listOfTokens if len(tok) > 2] # 除了單個字母外,其他字符串全部轉(zhuǎn)換成小寫
函數(shù)textParse()接受一個大字符串并將其解析為字符串列表。該函數(shù)去掉少于兩個字符的字符串,并將所有字符串轉(zhuǎn)換為小寫。?文章來源地址http://www.zghlxwxcb.cn/news/detail-471750.html
# 完整的垃圾郵件測試函數(shù)
def spamTest():
docList = [] # 文檔列表
classList = [] # 文檔標(biāo)簽
fullText = [] # 全部文檔內(nèi)容集合
for i in range(1, 26): # 遍歷垃圾郵件和非垃圾郵件各25個
wordList = textParse(open('email/spam/%d.txt' % i).read()) # 讀取垃圾郵件,將大字符串并將其解析為字符串列表
docList.append(wordList) # 垃圾郵件加入文檔列表
fullText.extend(wordList) # 把當(dāng)前垃圾郵件加入文檔內(nèi)容集合
classList.append(1) # 1表示垃圾郵件,標(biāo)記垃圾郵件
wordList = textParse(open(&
到了這里,關(guān)于樸素貝葉斯(垃圾郵件分類)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!