郭 慧
(山西大學(xué)商務(wù)學(xué)院信息學(xué)院,山西 太原 030031)
預(yù)測任務(wù)是數(shù)據(jù)挖掘的任務(wù)之一,它可以通過屬性的值,預(yù)測特定屬性的值。分類屬于預(yù)測任務(wù),通過訓(xùn)練集的學(xué)習(xí),得到一個目標(biāo)函數(shù)(模型)f,把每個屬性值x通過該函數(shù)映射到離散的目標(biāo)屬性y上。貝葉斯算法是一種基于統(tǒng)計的分類算法[1,2]。在對小樣本數(shù)據(jù)進(jìn)行學(xué)習(xí)時,貝葉斯算法表現(xiàn)出良好的分類能力。為了對抗有的樣本中沒有數(shù)據(jù)的問題,引入了平滑的概念,實(shí)現(xiàn)了更為有效的分類[3]。
針對分類問題,旨在實(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類別的概率[4]。根據(jù)概率論的相關(guān)知識,我們可以將該概率轉(zhuǎn)換為聯(lián)合概率與邊緣概率的商。具體的求解過程如下:
(1)
上述推導(dǎo)中,假設(shè)每一個樣本中的特征之間在給定類別下,是相互條件獨(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)等價于
貝葉斯分類器采用argmax函數(shù)進(jìn)行分類,具體如下:
(2)
類別ck在訓(xùn)練數(shù)據(jù)的統(tǒng)計取得最大值時,自變量x的值,可以采用極大似然估計求出,具體如下:
在實(shí)際數(shù)據(jù)中,有的樣本為空。這種情況可采用平滑方法對抗有的樣本中沒有數(shù)據(jù),具體如下:
(3)
(4)
以具體實(shí)例說明貝葉斯方法的計算過程。
訓(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,問PlayTennis的情況。
設(shè)λ=1,根據(jù)式(3)和式(4)分別進(jìn)行計算。
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),計算在不同分類下,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ù)測結(jié)果PlayTennis=No。
為了進(jìn)一步驗(yàn)證貝葉斯分類算法的效果,把該算法應(yīng)用到UCI數(shù)據(jù)集iris上,采用MATLAB R2017b實(shí)現(xiàn)。
2/3的數(shù)據(jù)作為訓(xùn)練集,1/3的數(shù)據(jù)作為測試集。主要算法如下:
步驟1:計算訓(xùn)練集中每一類的概率。如:第一種分類的概率
pClass1 = size(rows1,1) / size(training_set,1)
步驟2:計算屬性在該分類下的概率。如:在第一種分類下第j個屬性的概率 pAttributeClass(j,1)
=1/(sqrt(2*pi)*stdValue1(j))* exp(-(attribute(j)-meanValue1(j))^2/ (2*stdValue1(j)^2));
步驟3:比較樣本屬性的分類概率。如:若第i個測試樣本屬性概率乘積最大,也就是if (max([pXC1*pClass1, pXC2*pClass2, pXC3*pClass3]) == pXC1*pClass1) ,則測試樣本分類為1,test_set(i,5) = 1。
最終,貝葉斯分類算法在iris測試集上的準(zhǔn)確率為:0.979167。
分析了貝葉斯分類算法的原理以及實(shí)現(xiàn)過程,運(yùn)用貝葉斯分類算法在iris數(shù)據(jù)集上進(jìn)行分類測試,準(zhǔn)確率高,在測試集的48個樣本中,正確的有47個。說明貝葉斯分類算法對于小樣本數(shù)據(jù)有好的分類效果。
[1] 蔡永泉,王玉棟.以特征關(guān)聯(lián)項改進(jìn)貝葉斯分類器正確率[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ù)屬性完全貝葉斯分類器的學(xué)習(xí)與優(yōu)化[J].計算機(jī)學(xué)報,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è)計與實(shí)現(xiàn)[J].廣西工學(xué)院學(xué)報,2004(3):1-5.