樸素貝葉斯演算法是一種基於概率統計的分類方法,它主要利用貝葉斯公式對樣本事件求概率,通過概率進行分類。以下先對貝葉斯公式做個了解。
對於事件a、b,若p(b)>0,則事件a在事件b發生的條件下發生的概率為: p(
a|b)
=p(a
b)p(
b)將條件概率稍作轉化即可得到貝葉斯公式如下: p(
a|b)
=p(b
|a)p
(a)p
(b)
先看看如何使用樸素貝葉斯進行**吧。如下給出乙個weather資料集,使用樸素貝葉斯演算法**樣本 x= 中屬性play為yes還是no?
思路:我們可以求出在發生的條件下,事件play=yes和事件play=no的概率,誰的概率大,最終答案就選誰。相信大部分朋友都能看懂上面這個例子,也對樸素貝葉斯有了一定的認識。下面作一些補充介紹:解:根據貝葉斯公式,有: p(
play
=yes
|x)=
p(x|
play
=yes
)×p(
play
=yes
)p(x
) p(
play
=no|
x)=p
(x|p
lay=
no)×
p(pl
ay=n
o)p(
x)我們要比較這兩個概率的大小,由於分母相同且大於0,所以我們只需要比較分子的大小即可。 p(
x|pl
ay=y
es)×
p(pl
ay=y
es)=
p(x1
|pla
y=ye
s)×p
(x2|
play
=yes
)×p(
x3|p
lay=
yes)
×p(x
4|pl
ay=y
es)×
p(pl
ay=y
es)
其中, p
(x1|
play
=yes
)=p(
outl
ook=
rain
y|pl
ay=y
es)=
3/9
p(x2
|pla
y=ye
s)=p
(tem
pera
ture
=hot
|pla
y=ye
s)=2
/9 p
(x3|
play
=yes
)=p(
humi
dity
=nor
mal|
play
=yes
)=6/
9 p(
x4|p
lay=
yes)
=p(w
ind=
weak
|pla
y=ye
s)=6
/9 p
(pla
y=ye
s)=9
/14∴p(
play
=yes
|x)≈
3/9×
2/9×
6/9×
6/9×
9/14=
0.0211
同理可得: p
(x1|
play
=no)
=p(o
utlo
ok=r
ainy
|pla
y=no
)=2/
5 p(
x2|p
lay=
no)=
p(te
mper
atur
e=ho
t|pl
ay=n
o)=2
/5 p
(x3|
play
=no)
=p(h
umid
ity=
norm
al|p
lay=
no)=
1/5
p(x4
|pla
y=no
)=p(
wind
=wea
k|pl
ay=n
o)=2
/5 p
(pla
y=no
)=9/
14 ∴p
(pla
y=no
|x)≈
2/5×
2/5×
1/5×
2/5×
9/14=
0.0082
根據結果, p
(pla
y=ye
s|x)
>p(
play
=no|
x)所以,樣本 x= 的play類標號值為yes。
函式名:*****bayes
輸入:類標號未知的樣本x=
輸出:未知樣本 x 所屬類別號
(1)for
j=1 to m
(2) 計算 x 屬於每個類別 cj 的概率 p(x|cj) = p(x1|cj) × p(x2|cj) × … × p(xn|cj);
(3) 計算訓練集中每個類別 cj 的概率 p(cj);
(4) 計算概率值 μ = p(x|cj) × p(cj);
(5)end
for(6)選擇概率值 μ 最大的 ci(1≤i≤m) 作為類別輸出。
樸素貝葉斯
1.準備資料 從文字中構建詞向量 2.訓練演算法 從詞向量計算概率 3.測試演算法 儲存為 bayes.py 檔案 參考 coding utf 8 from numpy import 文字轉化為詞向量 def loaddataset postinglist my dog has flea probl...
樸素貝葉斯
機器學習是將資料轉化為決策面的過程 scikit learn縮寫為sklearn 訓練乙個分類器,學習之後 其處理的準確性 def nbaccuracy features train,labels train,features test,labels test from sklearn.bayes ...
樸素貝葉斯
樸素貝葉斯分類器 x1,x2,xn 氣壓,濕度,溫度,y1,y2 晴,雨 假設通過氣壓,濕度,溫度,的情況去推測天氣是否下雨,上述問題可以表示為 已知x 氣壓,濕度,溫度,時天氣為y 晴,雨 的概率。這個問題實際上就是乙個條件概率 由條件概率公式可得,p y x p x,y p x 根據貝葉斯定律 ...