相關(guān)文章
- K近鄰算法和KD樹詳細(xì)介紹及其原理詳解
- 樸素貝葉斯算法和拉普拉斯平滑詳細(xì)介紹及其原理詳解
- 決策樹算法和CART決策樹算法詳細(xì)介紹及其原理詳解
- 線性回歸算法和邏輯斯諦回歸算法詳細(xì)介紹及其原理詳解
- 硬間隔支持向量機(jī)算法、軟間隔支持向量機(jī)算法、非線性支持向量機(jī)算法詳細(xì)介紹及其原理詳解
- 高斯分布、高斯混合模型、EM算法詳細(xì)介紹及其原理詳解
前言
??今天給大家?guī)淼闹饕獌?nèi)容包括:樸素貝葉斯算法、拉普拉斯平滑。這些內(nèi)容也是機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容,本文不全是嚴(yán)格的數(shù)學(xué)定義,也包括生動(dòng)的例子,所以學(xué)起來不會(huì)枯燥。下面就是本文的全部?jī)?nèi)容了!
一、樸素貝葉斯算法
??現(xiàn)在有這樣一個(gè)例子,大學(xué)生小明是班級(jí)里最受歡迎的同學(xué),有一天老師布置的題目非常難,于是小明給班級(jí)里面的30個(gè)同學(xué)群發(fā)求助消息:
??由于小明的人緣很好,收到消息的同學(xué)均紛紛回復(fù)小明,但是小明發(fā)現(xiàn)這30個(gè)回復(fù)里面既有作業(yè)答案,同時(shí)也意外收獲了深情的告白。小明可以分辨出有16份作業(yè)答案,還有13份情書,唯獨(dú)班長(zhǎng)的回復(fù)小明沒有看懂:
??于是小明想,可不可以按照消息中出現(xiàn)的關(guān)鍵詞來給班長(zhǎng)的回復(fù)分一下類,看看班長(zhǎng)的回復(fù)是作業(yè)答案還是情書:
??小明首先根據(jù)收到的消息計(jì)算任何一則消息是作業(yè)答案還是情書的概率:
??然后從所有的消息中選定了四個(gè)關(guān)鍵詞作為分類依據(jù),并記錄下每一個(gè)詞在作業(yè)答案和情書中出現(xiàn)的次數(shù):
??隨后小明在兩種情況下分別計(jì)算關(guān)鍵詞出現(xiàn)的概率,例如在作業(yè)答案消息中,“喜歡”這個(gè)詞一共出現(xiàn)了3次,而所有關(guān)鍵詞出現(xiàn)了15次,所以在作業(yè)答案消息中出現(xiàn)“喜歡”這個(gè)詞的概率是 3 15 \frac{3}{15} 153?,以此類推,可以得到所有關(guān)鍵詞在兩種不同消息中出現(xiàn)的概率:
??當(dāng)我們計(jì)算得到所有關(guān)鍵詞在兩種不同消息中出現(xiàn)的概率后,再來分析班長(zhǎng)的回復(fù),假設(shè)班長(zhǎng)給小明發(fā)的消息中包含“紅豆”和“喜歡”兩個(gè)關(guān)鍵詞,首先我們先假設(shè)這是一份作業(yè),然后再乘以作業(yè)中出現(xiàn)“紅豆”和“喜歡”兩個(gè)關(guān)鍵詞的概率:
??這個(gè)公式的計(jì)算結(jié)果可以理解為猜測(cè)這是一份作業(yè)的正確程度,代入數(shù)據(jù)可以計(jì)算得到:
??同樣可以計(jì)算假設(shè)這是一份情書的正確程度:
??很明顯,小明收到的班長(zhǎng)的信息可能為情書的概率要比可能為作業(yè)答案的概率要高,所以小明得出結(jié)論,原來班長(zhǎng)發(fā)的是一封情書:
??以上整個(gè)過程就是我們常說的樸素貝葉斯算法,在樸素貝葉斯算法中,假設(shè)兩個(gè)特征維度之間是相互獨(dú)立的,在剛才的例子中,認(rèn)為兩個(gè)關(guān)鍵詞是相互獨(dú)立的,也就是說他們出現(xiàn)的順序和上下文關(guān)系并不影響計(jì)算結(jié)果,哪怕它們表達(dá)的意思天差地別也不會(huì)有任何影響:
??但是在現(xiàn)實(shí)情況中很少有相互獨(dú)立的情況發(fā)生,大多都是有關(guān)聯(lián)的,所以維度之間相互獨(dú)立的假設(shè)就顯得太過于簡(jiǎn)單粗暴,那么這種算法就被稱為樸素貝葉斯算法,剛剛通過文字和例子給大家直觀介紹了什么是樸素貝葉斯算法,下面讓我們從數(shù)學(xué)角度總結(jié)一下樸素貝葉斯算法。
??現(xiàn)在假設(shè)給定一個(gè)數(shù)據(jù)集
T
T
T,其中包含:
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
T={(x_{1},y_{1}),(x_{2},y_{2}),\dots,(x_{n},y_{n})}
T=(x1?,y1?),(x2?,y2?),…,(xn?,yn?)
??對(duì)于其中的參數(shù)需要注意其含義:
- x i = ( x 1 , … , x n ) x_{i}=(x^{1},\dots,x^{n}) xi?=(x1,…,xn), x i ( 1 ≤ x ≤ n ) x_{i}(1≤x≤n) xi?(1≤x≤n)是樣本特征,由一系列獨(dú)立的特征維度構(gòu)成
- y i = c k y_{i}=c_{k} yi?=ck?, y i ( 1 ≤ y ≤ n ) y_{i}(1≤y≤n) yi?(1≤y≤n)是樣本類別, y i y_{i} yi?可能屬于 c i ( 1 ≤ i ≤ k ) c_{i}(1≤i≤k) ci?(1≤i≤k)中的任何一個(gè)
??剛才我們已經(jīng)介紹過了,樸素貝葉斯算法就是基于樣本特征
x
x
x來預(yù)測(cè)樣本屬于的類別
y
y
y。根據(jù)貝葉斯定理,我們可以得到這樣一個(gè)看似復(fù)雜的等式:
P
(
y
=
c
k
∣
x
)
=
P
(
y
=
c
k
)
P
(
x
∣
y
=
c
k
)
∑
k
P
(
y
=
c
k
)
P
(
x
∣
y
=
c
k
)
P\left(y=c_{k} \mid x\right)=\frac{P\left(y=c_{k}\right) P\left(x \mid y=c_{k}\right)}{\sum_{k} P\left(y=c_{k}\right) P\left(x \mid y=c_{k}\right)}
P(y=ck?∣x)=∑k?P(y=ck?)P(x∣y=ck?)P(y=ck?)P(x∣y=ck?)?
??在上式中,因?yàn)榉帜干系拿恳粋€(gè)值對(duì)每一個(gè)類別來說都是一樣的,所以我們可以將上式簡(jiǎn)化一下,得到一個(gè)正比關(guān)系:
P
(
y
=
c
k
∣
x
)
∝
P
(
y
=
c
k
)
P
(
x
∣
y
=
c
k
)
P\left(y=c_{k} \mid x\right) \propto P\left(y=c_{k}\right) P\left(x \mid y=c_{k}\right)
P(y=ck?∣x)∝P(y=ck?)P(x∣y=ck?)
??在上式中,
y
y
y就是可能被分類的類別,也就是剛才例子中的作業(yè)答案或者情書,而
x
x
x就是關(guān)鍵詞的集合。因?yàn)槲覀兗僭O(shè)
x
x
x的特征是相互獨(dú)立的,所以可以把它們拆分成一系列條件概率的相乘:
P
(
y
=
c
k
∣
x
)
∝
P
(
y
=
c
k
)
∏
j
P
(
x
j
∣
y
=
c
k
)
P\left(y=c_{k} \mid x\right) \propto P\left(y=c_{k}\right) \prod_{j} P\left(x^{j} \mid y=c_{k}\right)
P(y=ck?∣x)∝P(y=ck?)j∏?P(xj∣y=ck?)
??通過上式就可以在例子中計(jì)算分類正確的概率,最后選擇正確分類概率最高的類別作為分類結(jié)果即可,這就是樸素貝葉斯法的數(shù)學(xué)形式。
二、拉普拉斯平滑
??我們?cè)賮砜戳硪粋€(gè)例子,假設(shè)有一段話是這樣寫的:
??我們現(xiàn)在要判斷它是作業(yè)答案還是情書,那么還是按照上面介紹的樸素貝葉斯算法來計(jì)算它們的正確程度:
??因?yàn)椤跋矚g”這個(gè)詞出現(xiàn)了三次,所以需要乘三次,也就是為什么需要計(jì)算三次方。并且情書中并沒有“辛苦”這個(gè)關(guān)鍵詞出現(xiàn)過,所以“辛苦”在情書中出現(xiàn)的概率為0,所以導(dǎo)致最后判斷其為情書的概率為0,算法從而將這段信息判斷為作業(yè)答案。
??很明顯這樣是不對(duì)的,我們?nèi)祟惪梢院茌p松的判斷出這是一份情書,但是計(jì)算機(jī)使用算法計(jì)算是死的,并沒有人類的情感。出現(xiàn)上面那種情況的原因是什么呢?是因?yàn)椤靶量唷痹谇闀谐霈F(xiàn)的概率為0,從而導(dǎo)致最后的計(jì)算結(jié)果為0,為了解決這個(gè)問題,我們可以使用拉普拉斯平滑技巧。
??拉普拉斯平滑技巧就是在每個(gè)關(guān)鍵詞上面人為增加一個(gè)出現(xiàn)的次數(shù),這樣就可以保證每一項(xiàng)都不為0:
??按照拉普拉斯平滑后的次數(shù),我們可以重新計(jì)算每個(gè)關(guān)鍵詞出現(xiàn)的頻率:
??當(dāng)我們使用平滑后的結(jié)果,再計(jì)算時(shí)就可以得到正確的結(jié)論了:
文章來源:http://www.zghlxwxcb.cn/news/detail-443824.html
總結(jié)
??以上就是本文的全部?jī)?nèi)容了,這個(gè)系列還會(huì)繼續(xù)更新,給大家?guī)砀嗟年P(guān)于機(jī)器學(xué)習(xí)方面的算法和知識(shí),下篇博客見!文章來源地址http://www.zghlxwxcb.cn/news/detail-443824.html
到了這里,關(guān)于樸素貝葉斯算法和拉普拉斯平滑詳細(xì)介紹及其原理詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!