貝葉斯演算法例項

2021-07-10 10:56:32 字數 1371 閱讀 3025

這一節我們將通過乙個例子來觀察貝葉斯的運**況:

def textparse(bigstring):   

import re

listoftokens = re.split(r'\w*', bigstring)

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

def spamtest():

doclist=; classlist = ; fulltext =

for i in range(1,26):

wordlist = textparse(open('email/spam/%d.txt' % i).read())

fulltext.extend(wordlist)

wordlist = textparse(open('email/ham/%d.txt' % i).read())

fulltext.extend(wordlist)

vocablist = createvocablist(doclist)#create vocabulary

trainingset = range(50); testset=

for i in range(10):

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

del(trainingset[randindex])

trainmat=; trainclasses =

for docindex in trainingset:

p0v,p1v,pspam = trainnb0(array(trainmat),array(trainclasses))

errorcount = 0

for docindex in testset:

wordvector = bagofwords2vecmn(vocablist, doclist[docindex])

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

errorcount += 1

print "classification error",doclist[docindex]

print 'the error rate is: ',float(errorcount)/len(testset)

可以將上面的**新增到上節的檔案中。第乙個函式將檔案解析為字串列表並去掉少於兩個字元的字串。接下來的函式就是對文件進行自動化處理,這裡一共有50個檔案,首先進行解析檔案,然後從這50個檔案中隨機取出10個進行**。最後輸出其錯誤率,並將錯誤的文件輸出;

貝葉斯演算法

貝葉斯演算法需要解決的問題 1.正向概率 假設袋子中n白球,m黑球,摸到黑球概率多大 2.逆向概率 事先不知道袋子中黑白球個數,從袋子中摸出乙個或幾個球,觀察這些取出球的顏色,以此來推斷袋中白黑球的比例。為什麼需要貝葉斯 現實世界本身就是不確定的,假設黑白球數量無限大,人類觀察能力有限,我們不可能完...

貝葉斯演算法

總結應用 貝葉斯演算法的目的是解決逆向概率的問題。何為逆向概率?先看看正向概率 袋子裡有m個黑球,n個白球,隨手一模,是黑球的機率是多大。這就是個正向概率問題。逆向概率 袋子裡有兩種球,通過觀察摸出來的球的顏色,推斷袋子中兩種球的比率。逆向概率的作用 是通過有限的資料推斷無限資料的情況,思考 星系距...

貝葉斯演算法

貝葉斯為了解決 逆概 問題提出的 正向概率 袋子裡裝著n個黑球和m個白球,伸手取摸球,摸到黑球和白球的概率有多大 逆向概率 袋子裡前提不知道有黑白球的比例,而是閉著眼睛摸球統計後推測黑球和白球的比例 現實世界本身不確定,人類觀察是有侷限的 我們日常所觀察只是表面,很多東西都是推測。男生總是穿長褲,女...