郭 慧
(山西大學(xué)商務(wù)學(xué)院信息學(xué)院,山西 太原 030031)
預(yù)測(cè)任務(wù)是數(shù)據(jù)挖掘的任務(wù)之一,它可以通過(guò)屬性的值,預(yù)測(cè)特定屬性的值。分類(lèi)屬于預(yù)測(cè)任務(wù),通過(guò)訓(xùn)練集的學(xué)習(xí),得到一個(gè)目標(biāo)函數(shù)(模型)f,把每個(gè)屬性值x通過(guò)該函數(shù)映射到離散的目標(biāo)屬性y上。貝葉斯算法是一種基于統(tǒng)計(jì)的分類(lèi)算法[1,2]。在對(duì)小樣本數(shù)據(jù)進(jìn)行學(xué)習(xí)時(shí),貝葉斯算法表現(xiàn)出良好的分類(lèi)能力。為了對(duì)抗有的樣本中沒(méi)有數(shù)據(jù)的問(wèn)題,引入了平滑的概念,實(shí)現(xiàn)了更為有效的分類(lèi)[3]。
針對(duì)分類(lèi)問(wèn)題,旨在實(shí)現(xiàn)從訓(xùn)練數(shù)據(jù)D={(x1,y1),(x2,y2),…,(xN,yN)}中得出訓(xùn)練目標(biāo)P(Y=ck|X=x),給定x,求出x屬于ck類(lèi)別的概率[4]。根據(jù)概率論的相關(guān)知識(shí),我們可以將該概率轉(zhuǎn)換為聯(lián)合概率與邊緣概率的商。具體的求解過(guò)程如下:
(1)
上述推導(dǎo)中,假設(shè)每一個(gè)樣本中的特征之間在給定類(lèi)別下,是相互條件獨(dú)立的,也就是:
P(X=x|Y=ck)=
P((X(1)=x(1),…,X(N)=x(N))|Y=ck)=
P(X(1)=x(1)|Y=ck),…,P(X(N)=x(N)|Y=ck)=
則式(1)等價(jià)于
貝葉斯分類(lèi)器采用argmax函數(shù)進(jìn)行分類(lèi),具體如下:
(2)
類(lèi)別ck在訓(xùn)練數(shù)據(jù)的統(tǒng)計(jì)取得最大值時(shí),自變量x的值,可以采用極大似然估計(jì)求出,具體如下:
在實(shí)際數(shù)據(jù)中,有的樣本為空。這種情況可采用平滑方法對(duì)抗有的樣本中沒(méi)有數(shù)據(jù),具體如下:
(3)
(4)
以具體實(shí)例說(shuō)明貝葉斯方法的計(jì)算過(guò)程。
訓(xùn)練樣本如表1所示[5]。
表1 訓(xùn)練樣本
其中,每一列代表的含義如下:
Day:第幾天,Outlook:天氣,Temperature:溫度,Humidity:潮濕度,Wind:風(fēng)力,PlayTennis:是否打網(wǎng)球。
給定新的樣本數(shù)據(jù)Outlook=sunny,Temperature=cool,Humidity=high,Wind=strong,問(wèn)PlayTennis的情況。
設(shè)λ=1,根據(jù)式(3)和式(4)分別進(jìn)行計(jì)算。
P(yes)=(8+1)/(12+2)=9/14
P(no)=(4+1)/(12+2)=5/14
P(outlook=sunny|yes)=(2+1)/(8+3)=3/11
P(outlook=sunny|no)=(3+1)/(4+3)=4/7
P(temperature=cool|yes)=(3+1)/(8+3)=4/11
P(temperature=cool|no)=(1+1)/(4+3)=2/7
P(humidity=high|yes)=(3+1)/(8+2)=4/10
P(humidity=high|no)=(3+1)/(4+2)=4/6
P(wind=strong|yes)=(3+1)/(8+2)=4/10
P(wind=strong|no)=(2+1)/(4+2)=3/6
根據(jù)式(2),計(jì)算在不同分類(lèi)下,P(Y=ck)∏jP(X(j)=x(j)|Y=ck)的值。
P(yes)P(sunny|yes)P(cool|yes)P(high|yes)P(strong|yes)=(9/14)*(3/11)*(4/11)*(4/10)*(4/10)=0.0102
(5)
P(no)P(sunny|no)P(cool|no)P(high|no)P(strong|no)=(5/14)*(4/7)*(2/7)*(4/6)*(3/6)=0.019 4
(6)
因?yàn)槭?6)>(5),所以,給定新樣本的預(yù)測(cè)結(jié)果PlayTennis=No。
為了進(jìn)一步驗(yàn)證貝葉斯分類(lèi)算法的效果,把該算法應(yīng)用到UCI數(shù)據(jù)集iris上,采用MATLAB R2017b實(shí)現(xiàn)。
2/3的數(shù)據(jù)作為訓(xùn)練集,1/3的數(shù)據(jù)作為測(cè)試集。主要算法如下:
步驟1:計(jì)算訓(xùn)練集中每一類(lèi)的概率。如:第一種分類(lèi)的概率
pClass1 = size(rows1,1) / size(training_set,1)
步驟2:計(jì)算屬性在該分類(lèi)下的概率。如:在第一種分類(lèi)下第j個(gè)屬性的概率 pAttributeClass(j,1)
=1/(sqrt(2*pi)*stdValue1(j))* exp(-(attribute(j)-meanValue1(j))^2/ (2*stdValue1(j)^2));
步驟3:比較樣本屬性的分類(lèi)概率。如:若第i個(gè)測(cè)試樣本屬性概率乘積最大,也就是if (max([pXC1*pClass1, pXC2*pClass2, pXC3*pClass3]) == pXC1*pClass1) ,則測(cè)試樣本分類(lèi)為1,test_set(i,5) = 1。
最終,貝葉斯分類(lèi)算法在iris測(cè)試集上的準(zhǔn)確率為:0.979167。
分析了貝葉斯分類(lèi)算法的原理以及實(shí)現(xiàn)過(guò)程,運(yùn)用貝葉斯分類(lèi)算法在iris數(shù)據(jù)集上進(jìn)行分類(lèi)測(cè)試,準(zhǔn)確率高,在測(cè)試集的48個(gè)樣本中,正確的有47個(gè)。說(shuō)明貝葉斯分類(lèi)算法對(duì)于小樣本數(shù)據(jù)有好的分類(lèi)效果。
[1] 蔡永泉,王玉棟.以特征關(guān)聯(lián)項(xiàng)改進(jìn)貝葉斯分類(lèi)器正確率[J].計(jì)算機(jī)應(yīng)用與軟件,2017,34(8):286-290.
[2] Dong W Y, Zhou M C. Gaussian Classifier-based Evolutionary Strategy for Multimodal[J].Optimization. IEEE Transactions on Neural Networks & Learning Systems,2014,25(6):1200-1216.
[3] 王雙成,杜瑞杰,劉穎.連續(xù)屬性完全貝葉斯分類(lèi)器的學(xué)習(xí)與優(yōu)化[J].計(jì)算機(jī)學(xué)報(bào),2012,35(10):2129-2137.
[4] M.Julia Flores,Jose A. Gamez,Ana M.Martinez. Domains of Competence of the Semi-naive Bayesian Network Classifiers[G]. Information Sciences,2014:120-148.
[5] 李春貴,聶永紅.基于面向?qū)ο蠓椒ǖ腎D3算法的設(shè)計(jì)與實(shí)現(xiàn)[J].廣西工學(xué)院學(xué)報(bào),2004(3):1-5.