機(jī)器學(xué)習(xí)算法系列之 – 樸素貝葉斯
樸素貝葉斯法是基于概率統(tǒng)計(jì),特征條件獨(dú)立假設(shè)的分類(lèi)方法,是一種非常常用的機(jī)器學(xué)習(xí)算法;通常用于處理文本分類(lèi)和情感分析等自然語(yǔ)言處理任務(wù)中。相對(duì)于其他復(fù)雜的模型,樸素貝葉斯算法具有簡(jiǎn)單、易于實(shí)現(xiàn)、高效和良好的準(zhǔn)確性等特點(diǎn)。
算法基礎(chǔ)
概率論基礎(chǔ)
條件概率
事件B已經(jīng)發(fā)生的條件下,事件A發(fā)生的概率,稱(chēng)為事件A在給定事件B的條件概率,表示為P(A|B)
P
(
A
∣
B
)
=
P
(
A
∣
B
)
P
(
B
)
P(A|B)= \frac{P(A|B)}{P(B)}
P(A∣B)=P(B)P(A∣B)?
其中,P(A∩B)=P(A|B)P(B)=P(B|A)P(A)
全概率公式
假設(shè):樣本空間S是由兩個(gè)事件A與A’組成的和。如下圖中,紅色部分是事件A,綠色部分是事件A’,它們共同構(gòu)成了樣本空間S,且無(wú)交集
此時(shí),依據(jù)全概率公式,事件B發(fā)生的概率P(B):
P
(
B
)
=
P
(
A
′
∩
B
)
+
P
(
A
∩
B
)
=
P
(
B
∣
A
′
)
P
(
A
′
)
+
P
(
B
∣
A
)
P
(
A
)
P(B)=P(A'∩B)+P(A∩B)=P(B|A')P(A')+P(B|A)P(A)
P(B)=P(A′∩B)+P(A∩B)=P(B∣A′)P(A′)+P(B∣A)P(A)
總結(jié) 全概率公式: P ( B ) = ∑ i = 1 n P ( B ∣ A i ) P ( A i ) P(B)=\sum_{i=1}^{n}P(B|A_i)P(A_i) P(B)=∑i=1n?P(B∣Ai?)P(Ai?)
事件獨(dú)立性
當(dāng)公式P(A1,A2,…,An)=P(A1)P(A2)…P(An)成立時(shí),則稱(chēng)A1,A2,…,An為相互獨(dú)立的事件。表示每個(gè)事件發(fā)生的概率互不影響。
貝葉斯定理
關(guān)于概率方面的基礎(chǔ)(正概率問(wèn)題、逆概率問(wèn)題,先驗(yàn)概率、后驗(yàn)概率)請(qǐng)讀者自行了解,貝葉斯屬于逆概率問(wèn)題。我們先來(lái)看看貝葉斯公式的表達(dá)
P
(
A
∣
B
)
=
P
(
A
)
P
(
B
∣
A
)
P
(
B
)
P(A|B)=P(A)\frac{P(B|A)}{P(B)}
P(A∣B)=P(A)P(B)P(B∣A)?
其中,P(A|B) 是指后驗(yàn)概率,即在給定觀(guān)測(cè)到的 B 事件發(fā)生之后,A 事件發(fā)生的概率;P(A) 是指先驗(yàn)概率,即在沒(méi)有任何其他信息的情況下,A 事件發(fā)生的概率;P(B|A) 是指似然度或條件概率,即在 A 事件已經(jīng)發(fā)生的情況下,B 事件發(fā)生的概率;P(B) 是指證據(jù)因子,即 B 事件發(fā)生的概率,二者比值構(gòu)成一個(gè)可能性函數(shù)。
貝葉斯定理核心思想
基于貝葉斯公式來(lái)進(jìn)行分類(lèi)。
它假設(shè)所有特征之間都是獨(dú)立同分布的,從而化了模型計(jì)算的過(guò)程。
在文本分類(lèi)中,我們可以使用樸素貝葉斯算法來(lái)計(jì)算一個(gè)文檔屬于某個(gè)類(lèi)別的概率。
具體而言,我們可以首先根據(jù)訓(xùn)練數(shù)據(jù)集,計(jì)算每個(gè)單詞(或者 n-gram 構(gòu)成的詞組)在每個(gè)類(lèi)別中出現(xiàn)的概率,以及每個(gè)類(lèi)別先驗(yàn)概率。然后可以使用貝葉斯公式來(lái)計(jì)算文檔屬于每個(gè)類(lèi)別的概率,并選擇概率最大的類(lèi)別作為該文檔的分類(lèi)結(jié)果。
- 也就是,在主觀(guān)判斷的基礎(chǔ)上,先估計(jì)一個(gè)值(先驗(yàn)概率),然后根據(jù)觀(guān)察的新信息不斷修正(可能性函數(shù))
也就是:新信息出現(xiàn)后A的概率=A的概率 x 新信息帶來(lái)的調(diào)整
貝葉斯決策論
算法概述
對(duì)于給定的訓(xùn)練數(shù)據(jù)集,首先基于特征條件獨(dú)立假設(shè)學(xué)習(xí)輸入輸出的聯(lián)合概率分布;然后基于此模型,對(duì)給定的輸入x,利用貝葉斯定理求出后驗(yàn)概率最大的輸出y。實(shí)現(xiàn)方法簡(jiǎn)單有效,學(xué)習(xí)與預(yù)測(cè)的效率都很高,很常用。
貝葉斯決策論(Bayesian decision theory):概率框架下實(shí)施決策
的基本方法。對(duì)于分類(lèi)任務(wù),在所有相關(guān)概率已知的情形下,貝葉
斯決策論考慮如何基于概率和誤判損失來(lái)選擇最優(yōu)的類(lèi)別標(biāo)記
- 期望損失
N種可能的類(lèi)別標(biāo)記 Y = { c 1 , c 2 , c 3 , . . . , c N } , λ i j Y=\{c_1,c_2,c_3,...,c_N\},\lambda_{ij} Y={c1?,c2?,c3?,...,cN?},λij?表示將一個(gè)真實(shí)標(biāo)記為 c j c_j cj?的樣本誤分類(lèi)為 c i c_i ci?產(chǎn)生的損失,也叫“條件風(fēng)險(xiǎn)”:
于是,貝葉斯判定準(zhǔn)則:為最小化總體風(fēng)險(xiǎn),只需要每個(gè)樣本選擇那
個(gè)能使條件風(fēng)險(xiǎn)R(c|x)最小的類(lèi)別標(biāo)記,即
h ? ( x ) = a r g m i n c ∈ Y R ( c ∣ x ) h^*(x)=arg min_{c\in Y}R(c|x) h?(x)=argminc∈Y?R(c∣x)
此處h為貝葉斯最優(yōu)分類(lèi)器
假設(shè)目標(biāo)是最小化分類(lèi)錯(cuò)誤率,則誤判損失 λ i j \lambda_{ij} λij?可以寫(xiě)為
此時(shí)條件風(fēng)險(xiǎn):
R
(
c
∣
x
)
=
1
?
P
(
c
∣
x
)
R(c|x)=1-P(c|x)
R(c∣x)=1?P(c∣x)
于是,最小化分類(lèi)錯(cuò)誤率的貝葉斯分類(lèi)器為:
h
?
(
x
)
=
a
r
g
?
m
a
x
c
∈
Y
P
(
c
∣
x
)
h^*(x)=arg\ max_{c\in Y}P(c|x)
h?(x)=arg?maxc∈Y?P(c∣x)
即對(duì)每個(gè)樣本x,選擇能使后驗(yàn)概率P(c|x)最大的類(lèi)別標(biāo)記
貝葉斯分類(lèi)模型
樸素貝葉斯分類(lèi)模型
樸素貝葉斯通過(guò)訓(xùn)練數(shù)據(jù)集學(xué)習(xí)聯(lián)合概率分布P(X,Y)。具體要先學(xué)習(xí)先驗(yàn)概率分布P(Y= c k c_k ck?)以及條件概率分布P(X=x|Y= c k c_k ck?),進(jìn)一步學(xué)習(xí)到聯(lián)合概率分布。
其中后驗(yàn)概率的計(jì)算根據(jù)貝葉斯定理進(jìn)行
樸素貝葉斯法實(shí)際上是生成數(shù)據(jù)的機(jī)制,所以屬于生成模型。條件獨(dú)立假設(shè)等于是說(shuō)用于分類(lèi)的特征,在類(lèi)確定的條件下都是條件獨(dú)立的。這一假設(shè)使樸素貝葉斯法變得簡(jiǎn)單,但有時(shí)會(huì)犧牲一定的分類(lèi)準(zhǔn)確率,在分類(lèi)對(duì)給定的輸入x通過(guò)學(xué)習(xí)到的模型計(jì)算后驗(yàn)概率分布P(c|x),將后驗(yàn)概率最大的類(lèi)作為x的類(lèi)輸出。
最后得到 樸素貝葉斯分類(lèi)器的表達(dá)式:
y
=
a
r
g
?
m
a
x
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
j
=
x
j
∣
Y
=
c
k
)
y=arg\ max_{c_k}P(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)
y=arg?maxck??P(Y=ck?)j∏?P(Xj=xj∣Y=ck?)
后驗(yàn)概率最大化的含義(樸素貝葉斯原理)
等價(jià)于期望風(fēng)險(xiǎn)最小化。
首先,假設(shè)選擇0-1損失函數(shù):
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y,f(X))= \begin{cases} 1,Y\neq f(X)\\ 0,Y=f(X) \end{cases}
L(Y,f(X))={1,Y=f(X)0,Y=f(X)?
f(X)為分類(lèi)決策函數(shù)。此時(shí)期望風(fēng)險(xiǎn)函數(shù)為
R
e
x
p
(
f
)
=
E
[
L
(
Y
,
f
(
X
)
)
]
R_{exp}(f)=E[L(Y,f(X))]
Rexp?(f)=E[L(Y,f(X))],此處期望是對(duì)聯(lián)合分布P(X,Y)取的。再由此取得條件期望
R
e
x
p
(
f
)
=
E
X
∑
k
=
1
K
[
L
(
c
k
,
f
(
X
)
)
]
P
(
c
k
∣
X
)
R_{exp}(f)=E_X\sum^K_{k=1}[L(c_k,f(X))]P(c_k|X)
Rexp?(f)=EX?k=1∑K?[L(ck?,f(X))]P(ck?∣X)
可以看出,為了使得期望風(fēng)險(xiǎn)最小化,我們只需要對(duì)X=x逐個(gè)極小化,由此便可得到:
f
(
x
)
=
a
r
g
?
m
i
n
y
∈
Y
∑
k
=
1
K
L
(
c
k
,
y
)
P
(
c
k
∣
X
=
x
)
=
a
r
g
?
m
i
n
y
∈
Y
∑
k
=
1
K
P
(
y
≠
c
k
∣
X
=
x
)
=
a
r
g
?
m
i
n
y
∈
Y
(
1
?
P
(
y
=
c
k
∣
X
=
x
)
)
=
a
r
g
?
m
a
x
y
∈
Y
P
(
y
=
c
k
∣
X
=
x
)
f(x)=arg\ min_{y\in Y}\sum^K_{k=1}L(c_k,y)P(c_k|X=x)\\ =arg\ min_{y\in Y}\sum^K_{k=1}P(y\neq c_k|X=x)\\ =arg\ min_{y\in Y}(1-P(y=c_k|X=x)) =arg\ max_{y\in Y}P(y=c_k|X=x)
f(x)=arg?miny∈Y?k=1∑K?L(ck?,y)P(ck?∣X=x)=arg?miny∈Y?k=1∑K?P(y=ck?∣X=x)=arg?miny∈Y?(1?P(y=ck?∣X=x))=arg?maxy∈Y?P(y=ck?∣X=x)
這樣一來(lái),根據(jù)期望風(fēng)險(xiǎn)最小化準(zhǔn)則就得到了后驗(yàn)概率最大化準(zhǔn)則:
f
(
x
)
=
a
r
g
?
m
a
x
y
∈
Y
P
(
c
k
∣
X
=
x
)
f(x)=arg\ max_{y\in Y}P(c_k|X=x)
f(x)=arg?maxy∈Y?P(ck?∣X=x)
也就是==“樸素貝葉斯法”所采取的原理==
由此,樸素貝葉斯分類(lèi)器的訓(xùn)練過(guò)程,就是基于訓(xùn)練集估計(jì)先驗(yàn)概率P?,并為每個(gè)屬性估計(jì)條件概率 P ( x j ∣ c ) P(x^j|c) P(xj∣c)
-
估計(jì)先驗(yàn)概率:
令Dc是訓(xùn)練集D中第c類(lèi)樣本組成的集合,若有充足的獨(dú)立同分
布樣本,則先驗(yàn)概率P? 為 -
估計(jì)條件概率
離散型:令 D c , x i D_{c,x_i} Dc,xi??表示 D c D_c Dc?在第i個(gè)屬性上取值為 x i x_i xi?的樣本組成的集合,則條件概率 P ( x i ∣ c ) P(x_i|c) P(xi?∣c)為
連續(xù)型:對(duì)于連續(xù)屬性考慮概率密度函數(shù),假定
μ c , x i 和 σ c , x i 2 \mu_{c,x_i}和\sigma^2_{c,x_i} μc,xi??和σc,xi?2?分別為第c類(lèi)樣本在第i個(gè)屬性上取值的均值和方差,則
算法步驟
綜上,我們可以總結(jié)出樸素貝葉斯分類(lèi)模型求解的基本步驟
1、計(jì)算先驗(yàn)概率
2、計(jì)算條件概率
3、對(duì)于給定實(shí)例,計(jì)算
P
(
Y
=
c
k
)
∏
j
P
(
X
j
=
x
j
∣
Y
=
c
k
)
,
k
=
1
,
2
,
.
.
.
,
K
P(Y=c_k)\prod_jP(X^j=x^j|Y=c_k),k=1,2,...,K
P(Y=ck?)∏j?P(Xj=xj∣Y=ck?),k=1,2,...,K
4、確定實(shí)例x的類(lèi)y=
a
r
g
?
m
a
x
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
j
=
x
j
∣
Y
=
c
k
)
arg\ max_{c_k}P(Y=c_k)\prod_jP(X^j=x^j|Y=c_k)
arg?maxck??P(Y=ck?)∏j?P(Xj=xj∣Y=ck?)
貝葉斯估計(jì)
若當(dāng)某個(gè)屬性值在訓(xùn)練樣本中從未出現(xiàn)過(guò)時(shí),估計(jì)條件概率時(shí),連乘結(jié)果都會(huì)為0,此時(shí)會(huì)影響到后驗(yàn)概率計(jì)算的結(jié)果,產(chǎn)生偏差分類(lèi)。
解決辦法:貝葉斯估計(jì)。
具體而言,條件概率的貝葉斯估計(jì)是:
P
λ
(
X
j
=
a
j
l
∣
Y
=
c
k
)
=
∑
i
=
1
N
I
(
x
i
j
=
a
j
l
,
y
i
=
c
k
)
+
λ
∑
i
=
1
N
I
(
y
i
=
c
k
)
+
S
j
λ
P_\lambda(X^j=a_{jl|Y=c_k})=\frac{\sum^N_{i=1}I(x_i^j=a_{jl},y_i=c_k)+\lambda}{\sum^N_{i=1}I(y_i=c_k)+S_j\lambda}
Pλ?(Xj=ajl∣Y=ck??)=∑i=1N?I(yi?=ck?)+Sj?λ∑i=1N?I(xij?=ajl?,yi?=ck?)+λ?
通常取
λ
\lambda
λ為1,此時(shí)稱(chēng)為拉普拉斯平滑。
同樣,先驗(yàn)概率的貝葉斯估計(jì)是
P
λ
(
Y
=
c
k
)
=
∑
i
=
1
N
I
(
y
i
=
c
k
)
+
λ
N
+
K
λ
P_\lambda(Y=c_k)=\frac{\sum^N_{i=1}I(y_i=c_k)+\lambda}{N+K\lambda}
Pλ?(Y=ck?)=N+Kλ∑i=1N?I(yi?=ck?)+λ?
樸素貝葉斯分類(lèi)模型的使用
- 若對(duì)預(yù)測(cè)速度要求高:預(yù)計(jì)算所有概率估值,使用時(shí)“查表”
- 若數(shù)據(jù)更替頻繁:不進(jìn)行任何訓(xùn)練,收到預(yù)測(cè)請(qǐng)求時(shí)再估值(懶惰學(xué)習(xí) , lazy learning)
- 若數(shù)據(jù)不斷增加:基于現(xiàn)有估值,對(duì)新樣本涉及的概率估值進(jìn)行修正(增量學(xué)習(xí) , incremental learning
優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
? 樸素貝葉斯模型有穩(wěn)定的分類(lèi)效率;
? 對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好,能處理多分類(lèi)任務(wù);
? 對(duì)缺失數(shù)據(jù)不太敏感,算法也比較簡(jiǎn)單,常用于文本分類(lèi)。
缺點(diǎn):
? 樸素貝葉斯假定每個(gè)變量之間是相互獨(dú)立的,但是現(xiàn)實(shí)中的數(shù)據(jù)
往往都具有一定的相關(guān)性,很少有完全獨(dú)立的;
? 由于我們是通過(guò)先驗(yàn)和數(shù)據(jù)來(lái)決定后驗(yàn)的概率從而決定分類(lèi),所
以分類(lèi)決策存在一定的錯(cuò)誤率
算法實(shí)戰(zhàn)
樸素貝葉斯算法實(shí)戰(zhàn)可參考該博客:《《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》第四章 Python3代碼-(親自修改測(cè)試可成功運(yùn)行)
總結(jié)
總結(jié)來(lái)說(shuō),樸素貝葉斯算法是一種簡(jiǎn)單、高效、易于實(shí)現(xiàn)的器學(xué)習(xí)算法,特別適用于文本分類(lèi)和情感分析等自然語(yǔ)言處理任務(wù)。在實(shí)際應(yīng)用中,我們可以使用不同變體的樸素貝葉斯算法來(lái)處理不同類(lèi)型的數(shù)據(jù)。
參考
《統(tǒng)計(jì)學(xué)習(xí)方法》,李航, 清華大學(xué)出版社,第二版
《機(jī)器學(xué)習(xí)》,周志華,清華大學(xué)出版社文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-470368.html
以上就是關(guān)于決策樹(shù)的分享,若有不妥之處,歡迎各路大佬不吝賜教~
喜歡的伙伴點(diǎn)個(gè)贊,順便收藏、關(guān)注一下吧~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-470368.html
到了這里,關(guān)于機(jī)器學(xué)習(xí)算法系列(六)-- 樸素貝葉斯的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!