樸素貝葉斯的常見應用場景:
1、文字分類
2、影象識別
貝葉斯決策理論核心思想:
d是乙個資料集,(x,
y)
(x,y)
(x,y
)是d的乙個資料點,p1(
x,y)
p_1(x,y)
p1(x,
y)表示( x,
y)
(x,y)
(x,y
)屬於類別1的概率,p2(
x,y)
p_2(x,y)
p2(x,
y)表示( x,
y)
(x,y)
(x,y
)屬於類別2的概率,若:
1、p 1(
x,y)
>p2
(x,y
)p_1(x,y) > p_2(x,y)
p1(x,
y)>p2
(x,
y),則判定(x,
y)
(x,y)
(x,y
)屬於類別1;
2、p 2(
x,y)
>p1
(x,y
)p_2(x,y) > p_1(x,y)
p2(x,
y)>p1
(x,
y),則判定(x,
y)
(x,y)
(x,y
)屬於類別2;
貝葉斯準則:
p (x
∣y)=
p(y∣
x)∗p
(x)p
(y
)p(x|y) = \frac
p(x∣y)
=p(y
)p(y
∣x)∗
p(x)
sklearn庫中multinomialnb的應用例項
from sklearn.datasets import fetch_20newsgroups #資料集
import tarfile #壓縮包處理
from sklearn.model_selection import train_test_split #分割函式:將源資料分割為測試集、訓練集 --from sklearn.cross_validation import train_test_split
from sklearn.feature_extraction.text import countvectorizer #文字特徵向量轉化模組 --
from sklearn.*****_bayes import multinomialnb #樸素貝葉斯
from sklearn.metrics import classification_report #模型評估模組
'''匯入資料
'''#解決辦法:#
#…………………第二步:將20new-sbydate.tar.gz檔案黏貼到python預設資料夾中
#…………………第三步:解壓:tarfile.open('20new-sbydate.tar.gz','r:gz').extractall()
#…………………第四步:再執行:news = fetch_20newsgroups(subset = 'all')
news = fetch_20newsgroups(subset =
'all'
)# tarfile.open('20new-sbydate.tar.gz','r:gz').extractall() #開啟壓縮包20new-sbydate.tar.gz,extractall:解壓包內所有檔案
'''分割訓練集和測試集
'''xtrain,xtest,ytrain,ytest = train_test_split(news.data,news.target,test_size=
0.25
,random_state=33)
# print(len(news.data[0]),'*****=\n',news.data[0],'*****=\n',xtrain[0],'*****=\n',ytrain[0])
'''使用貝葉斯分類對新聞進行**
'''vec = countvectorizer(
)#將文字資料集進行特徵向量化
xtrain = vec.fit_transform(xtrain)
xtest = vec.transform(xtest)
mnb = multinomialnb(
).fit(xtrain,ytrain)
#使用樸素貝葉斯模型對訓練集進行訓練
ypredict = mnb.predict(xtest)
#對測試集進行**
# print(ypredict[0])
print
(set
(ypredict)
)'''
模型評估
'''predict_score = mnb.score(xtest,ytest)
print
('準確率:%.2f'
%(predict_score*
100)
,'%'
)'''
分類指標的文字報告:
1、分類標籤名(target_names)
2、precision:精確率,**為正的樣本中,**正確的佔比;例:類別alt.atheism的精確率 = **為alt.atheism的樣本中,實際也為alt.atheism的樣本數佔比
3、recall:召回率,實際為正的樣本中,**正確的佔比;例:類別alt.atheism的召回率 = 實際為alt.atheism的樣本中被正確**為alt.atheism的樣本數佔比
4、f1-score:精確率和召回率的調和平均數,2*precision*recall/(precision+recall)
5、support:測試集中實際樣本數,例:測試集中有201樣本的實際類別為alt.atheism
'''print
('其他指標:'
,classification_report(ytest,ypredict,target_names = news.target_names)
)
機器學習 樸素貝葉斯
樸素貝葉斯原理 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...
機器學習之樸素貝葉斯
寫在前面 本文寫自初學時,若後續學習過程中有新的理解,將不定期進行更新 若文中敘述有誤,望不吝賜教,也將及時修改 貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。而樸素樸素貝葉斯分類是貝葉斯分類中最簡單,也是常見的一種分類方法。在理解樸素貝葉斯之前,需要對兩個數...