機器學習 樸素貝葉斯 02

2022-07-26 10:24:13 字數 1483 閱讀 6823

心得體會

1交叉驗證:從訓練的資料裡隨機抽取作為測試集

#

4-6樸素貝葉斯過濾垃圾郵件

#樸素貝葉斯交叉驗證

deftextparse(bigstring):

import

re listoftokens=re.split('

\\w+

',bigstring)

return [tok.lower() for tok in listoftokens if len(tok)>2]

defspamtest():

doclist=

classlist=

fulltext=

#存入資料

for i in range(1,26):

wordlist=textparse(open('

e:/python/《機器學習實戰》**/ch04/spam/%d.txt

'%i).read())

wordlist=textparse(open('

e:/python/《機器學習實戰》**/ch04/ham/%d.txt

'%i).read())

#隨機建立測訓練集

vocablist=createvocablist(doclist) #

生成單詞向量

trainingset=list(range(50))

testset=

for i in range(10):

randindex=int(random.uniform(0,len(trainingset)))#

生成trainingset範圍內的隨機數

將該訓練資料加入訓練集

del(trainingset[randindex])#

將training中該資料刪除,以免重複使用同一資料

trainmat=

trainclasses=

for docindex in

trainingset:

#將訓練資料變成單詞向量

儲存該訓練集的型別

p0v,p1v,pspam=trainnbo(array(trainmat),array(trainclasses))#

生成每個位置的權重

#對測試集分類

errorcount=0

for docindex in

testset:

wordvector=setofwords2vec(vocablist,doclist[docindex])

if classifynb(array(wordvector),p0v,p1v,pspam)!=classlist[docindex]:#

分類結果如果不一樣error+1

errorcount+=1

print("

the error rate is :

",float(errorcount)/len(testset))

spamtest()

機器學習 02 樸素貝葉斯

理論部分 樸素貝葉斯基本原理 樸素貝葉斯的三種形式 極值問題情況下的每個類的分類概率 下溢問題如何解決 零概率問題如何解決 sklearn引數詳解 生成模型 在概率統計理論中,生成模型是指能夠隨機生成觀測資料的模型,尤其是在給定某些隱含引數的條件下。它給觀測值和標註資料序列指定乙個聯合概率分布。在機...

機器學習 樸素貝葉斯

樸素貝葉斯原理 1.貝葉斯公式 2.樸素貝葉斯的模型 3.後驗概率最大化的含義 4.樸素貝葉斯的引數估計 4.1.特徵是離散值 假設符合多項式分布 4.2.特徵是稀疏的離散值 假設符合伯努利分布 4.3.特徵是連續值 假設符合正態分佈 5.樸素貝葉斯演算法過程 6.樸素貝葉斯演算法小結 scikit...

機器學習 樸素貝葉斯 例子

一 學習樸素貝葉斯之前先了解一下 條件概率下 貝葉斯公式 1 舉例是兩個工具機m1和m2 用例生產扳手機器 生產扳手 個數 mach1 30mach2 20不合格佔1 defective 機器 次品分布比例 mach1 50 mach2 50 2 問題 mach2生產的不合格產品的概率是多少?p m...