心得體會
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...