侯慶山,邢進(jìn)生
(山西師范大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,山西 臨汾 041000)
數(shù)據(jù)挖掘技術(shù)的不斷發(fā)展和完善,吸引了相關(guān)信息產(chǎn)業(yè)和大量研究人員的注意。隨著計(jì)算機(jī)相關(guān)技術(shù)的不斷成熟和進(jìn)步,數(shù)據(jù)量變得越來(lái)越龐大,更多的數(shù)據(jù)可以被利用。利用相關(guān)的數(shù)據(jù)挖掘技術(shù)可以將這些數(shù)據(jù)轉(zhuǎn)化為更有意義的信息和知識(shí)。收集到的信息可以應(yīng)用到市場(chǎng)調(diào)查、生產(chǎn)控制、進(jìn)化分析和科學(xué)探索[1-2]等領(lǐng)域。樣本分類是一種重要的數(shù)據(jù)挖掘技術(shù),涉及到從現(xiàn)實(shí)世界的大型數(shù)據(jù)庫(kù)中提取出有效的知識(shí)模式。與有效知識(shí)數(shù)據(jù)挖掘的相關(guān)研究是非常重要的,決策過程的復(fù)雜程度以及決策結(jié)果的好壞往往取決于所用的分類方法是否有效。
由于輸入數(shù)據(jù)的不精確性、模糊性、類別間邊界的重疊性以及特征定義的不明確性,在對(duì)數(shù)據(jù)樣本進(jìn)行分類時(shí)的任何階段都可能存在不確定性。傳統(tǒng)的樣本分類算法中證據(jù)理論是模糊決策的有效工具,在對(duì)樣本分類時(shí),往往需要對(duì)樣本的特征進(jìn)行篩選、降維以及為樣本分配權(quán)重等處理。這些處理過程往往需要人工的參與,因此傳統(tǒng)的樣本分類算法通常是比較復(fù)雜的。首次出現(xiàn)的Dempster-Shafer證據(jù)理論[3]被認(rèn)為是智能系統(tǒng)中推理不確定性信息的有效模型,但當(dāng)高度沖突的證據(jù)被組合起來(lái)時(shí),樣本數(shù)據(jù)的分類結(jié)果往往是錯(cuò)誤的[4-6]。Murph等人[7]提出了一種基于計(jì)算所有證據(jù)平均值的證據(jù)組合方法,但并沒有考慮證據(jù)權(quán)重對(duì)于融合結(jié)果的影響,將所有的權(quán)重設(shè)定為同一值。Han等人[8]提出了一種改進(jìn)的基于證據(jù)距離測(cè)量的平均組合方法,每個(gè)證據(jù)主體的權(quán)重都被考慮在內(nèi)。但其組合規(guī)則不能有效地處理高度沖突的證據(jù)組合。Deng等人[9]提出了一種新的加權(quán)平均證據(jù)組合方法,但隨著樣本特征增多,利用不確定性度量來(lái)確定證據(jù)主體的權(quán)重變得困難。
總體上看,數(shù)據(jù)樣本分類[10-11]就是發(fā)現(xiàn)區(qū)分?jǐn)?shù)據(jù)類型的相關(guān)模型算法,以便模型能夠預(yù)測(cè)具有未知類標(biāo)簽值的樣本。人工神經(jīng)網(wǎng)絡(luò)[12-14]是一種流行的數(shù)據(jù)建模工具,可以執(zhí)行類似于人腦的智能任務(wù)。多層感知器反向傳播網(wǎng)絡(luò)[15-16]算法是神經(jīng)網(wǎng)絡(luò)領(lǐng)域中進(jìn)行數(shù)據(jù)分類的可靠方法之一。徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)[17-18]是另一種利用徑向基函數(shù)作為激活函數(shù)的強(qiáng)大神經(jīng)網(wǎng)絡(luò)模型。此外,針對(duì)輸入樣本數(shù)據(jù)的不確定性,基于經(jīng)典集合論的模糊集合論[19-21]在處理現(xiàn)實(shí)生活中的不確定性方面是非常靈活的。在模糊系統(tǒng)中,特征與不同樣本類別的隸屬度相關(guān)聯(lián)。
該文提出的算法與傳統(tǒng)的證據(jù)理論算法相比,利用神經(jīng)網(wǎng)絡(luò)模型并結(jié)合模糊理論對(duì)數(shù)據(jù)集進(jìn)行有效的分類,避免了人工參與樣本特征分配權(quán)重、特征選擇等問題,過程更為簡(jiǎn)單,效果更加良好。神經(jīng)網(wǎng)絡(luò)處理數(shù)值和定量數(shù)據(jù),模糊系統(tǒng)處理符號(hào)和定性數(shù)據(jù)。該算法有效地結(jié)合了這兩種方法的優(yōu)勢(shì),利用基于模糊集理論的方法將模糊系統(tǒng)的類人邏輯推理與神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)相結(jié)合,樣本分類的算法效率大幅提升。
1.1.1 模糊因素集和模糊因素權(quán)重集
模糊因素集被定義為Ω={b1,b2,…,bm},其中bi,i∈[1,m]表示第i個(gè)決定分類結(jié)果的模糊因素。W={w1,w2,…,wm},其中wi,i∈[1,m]表示第i個(gè)影響因素對(duì)分類結(jié)果的影響程度。
1.1.2 隸屬度函數(shù)
模糊決策的結(jié)果與隸屬度函數(shù)存在緊密的聯(lián)系,隸屬度函數(shù)定義如下:對(duì)于模糊數(shù)據(jù)集Ω中的任意元素bi,都有一個(gè)數(shù)F(bi)∈[0,1]與其相對(duì)應(yīng),當(dāng)bi在Ω中變動(dòng)時(shí),F(xiàn)(bi)稱作隸屬度函數(shù)。隸屬度的大小表明了輸入樣本屬于該類可能性的大小。
1.2.1 結(jié)構(gòu)組成
前饋神經(jīng)網(wǎng)絡(luò)由多層連續(xù)的非線性函數(shù)構(gòu)成,包含輸入層、隱含層、輸出層三部分。結(jié)構(gòu)如圖1所示。
圖1 前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
1.2.2 前向傳播
前饋神經(jīng)網(wǎng)絡(luò)可通過式(1)進(jìn)行傳播。通過逐層的網(wǎng)絡(luò)傳遞,由輸出層將最終結(jié)果輸出。網(wǎng)絡(luò)的傳遞及輸出過程可由式(2)表達(dá)。
(1)
其中,fl(·)表示第l層網(wǎng)絡(luò)節(jié)點(diǎn)的激活函數(shù),W(l)∈Rm(l)×m(l-1)表示第l-1層和第l層之間的權(quán)值矩陣,其中m(l)表示第l層的節(jié)點(diǎn)個(gè)數(shù)。b(l)∈Rm(l)表示第l-1層和第l層之間的偏置值。z(l)∈Rm(l)表示第l層網(wǎng)絡(luò)節(jié)點(diǎn)的輸入值,a(l)∈Rm(l)表示第l層網(wǎng)絡(luò)節(jié)點(diǎn)的輸出值。
x=a(0)→z(1)→a(1)→z(2)→…→a(L-1)→
z(L)→a(L)
(2)
其中,L表示網(wǎng)絡(luò)的層數(shù)。
1.2.3 反向傳播
對(duì)于輸入樣本(X,y),網(wǎng)絡(luò)損失采用交叉熵?fù)p失,損失定義如式(3)所示。
(3)
(4)
(5)
通過隨機(jī)梯度下降法對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行學(xué)習(xí)和調(diào)整,在網(wǎng)絡(luò)的迭代訓(xùn)練過程中,第l層權(quán)重和偏置參數(shù)的更新可由式(6)、式(7)表達(dá)。
(6)
(7)
其中,α表示學(xué)習(xí)率。
考慮N個(gè)輸入樣本,每個(gè)輸入樣本包含k個(gè)屬性,輸入樣本共屬于M個(gè)類別。定義輸入樣本集S={s1,s2,…,sn},樣本屬性集A={a1,a2,…,ak},樣本類別集C={c1,c2,…,cM}。定義的樣本屬性隸屬度函數(shù)可由式(8)表達(dá)。
(8)
i∈[1,k],j∈[1,n]
式中,參數(shù)z決定了隸屬度函數(shù)的中心位置,參數(shù)e,l控制交界點(diǎn)處的斜率。隸屬度函數(shù)的形狀及位置由參數(shù)e,l,z決定,通過調(diào)控相關(guān)參數(shù)得到滿足需求的屬性隸屬度函數(shù)。輸入樣本某一類別的隸屬度可由式(9)表達(dá)。
(9)
j∈[1,n],i∈[1,k],m∈[1,M]
對(duì)輸入樣本的類別隸屬度進(jìn)行歸一化操作,可由式(10)表達(dá)。
(10)
(1)求解輸入樣本的隸屬度矩陣。
假定包含N個(gè)輸入樣本s以及M個(gè)預(yù)測(cè)類別c,每個(gè)樣本包含了k個(gè)樣本特征a。
(11)
(2)設(shè)置神經(jīng)網(wǎng)絡(luò)激活函數(shù)與網(wǎng)絡(luò)損失。
在輸入樣本前向傳播的過程中,樣本信息可由式(12)進(jìn)行表達(dá),將輸入信息z經(jīng)過網(wǎng)絡(luò)節(jié)點(diǎn)的激活函數(shù),得到網(wǎng)絡(luò)節(jié)點(diǎn)的激活值。為簡(jiǎn)化計(jì)算,神經(jīng)網(wǎng)絡(luò)的激活函數(shù)選取ReLU與Swish-B激活函數(shù),由式(13)定義表達(dá)。
(12)
式中,W=[w1,w2,…,wn]∈Rd為權(quán)重向量,b表示偏置值。
(13)
針對(duì)樣本分類問題,神經(jīng)網(wǎng)絡(luò)的損失采用交叉熵?fù)p失函數(shù),可由式(14)表達(dá)。
(14)
式中,n表示輸入樣本的數(shù)量,m表示輸入樣本種類,yij表示第i個(gè)樣本屬于分類j的標(biāo)簽值,取值為0或1。f(xij)表示樣本i被預(yù)測(cè)為j類別的概率。
(3)網(wǎng)絡(luò)參數(shù)調(diào)節(jié)。
將求解好的隸屬度矩陣輸入到神經(jīng)網(wǎng)絡(luò)中,利用反向傳播算法對(duì)網(wǎng)絡(luò)的參數(shù)進(jìn)行不斷的迭代修正。算法描述如下:
步驟:
①對(duì)網(wǎng)絡(luò)的權(quán)值參數(shù)W和b隨機(jī)初始化。
②對(duì)樣本訓(xùn)練集Ω中的樣本進(jìn)行隨機(jī)抽取排序。
③從樣本訓(xùn)練集Ω中依次選取訓(xùn)練樣本(X(n),y(n))。
④通過前向傳播計(jì)算每一層的輸入值與激活函數(shù)的值。
⑤通過反向傳播算法調(diào)整每一層的誤差值,更新網(wǎng)絡(luò)的權(quán)值與偏置值。
⑥重復(fù)步驟②~⑤直到網(wǎng)絡(luò)模型在樣本驗(yàn)證集上的錯(cuò)誤趨于穩(wěn)定。
輸出:權(quán)值矩陣W與偏置b。
(4)預(yù)測(cè)集樣本的預(yù)測(cè)。
利用訓(xùn)練好的人工神經(jīng)網(wǎng)絡(luò)對(duì)樣本預(yù)測(cè)集數(shù)據(jù)進(jìn)行預(yù)測(cè),對(duì)網(wǎng)絡(luò)性能做出評(píng)估。
選取鳶尾花數(shù)據(jù)集作為算法網(wǎng)絡(luò)的實(shí)驗(yàn)數(shù)據(jù)集,鳶尾花數(shù)據(jù)集作為統(tǒng)計(jì)學(xué)習(xí)與樣本分類領(lǐng)域的經(jīng)典數(shù)據(jù)集,常被用于實(shí)驗(yàn)測(cè)試。數(shù)據(jù)集中記錄了150條數(shù)據(jù),分為3類鳶尾花(Iris-Setosa,Iris-Versicolour,Iris-Virginica),每類鳶尾花包含了50條數(shù)據(jù)。每條數(shù)據(jù)記錄了鳶尾花的四個(gè)特征,即花瓣的長(zhǎng)度和寬度,花萼的長(zhǎng)度和寬度,通過鳶尾花的特征預(yù)測(cè)鳶尾花的品種。
(1)讀取鳶尾花數(shù)據(jù)集的csv文件,鳶尾花數(shù)據(jù)集中的部分?jǐn)?shù)據(jù)如表1所示。每條數(shù)據(jù)包含了Sepal.Length、Sepal.Width、Petal.Length、Petal.Width四個(gè)屬性以及品種類別Species。數(shù)據(jù)集各類屬性的均值、方差、中位數(shù)、最大值和最小值等如表2所示。
表1 數(shù)據(jù)集部分?jǐn)?shù)據(jù)
表2 數(shù)據(jù)集屬性值數(shù)據(jù)
(2)繪制3類鳶尾花數(shù)據(jù)各屬性值與ID之間的關(guān)系圖,如圖2所示。
(a)花萼長(zhǎng)與ID之間關(guān)系
(b)花萼寬與ID之間關(guān)系
(c)花瓣長(zhǎng)與ID之間關(guān)系
(d)花瓣寬與ID之間關(guān)系
ID為1~50的為Setosa鳶尾花,51~100的為Versicolour鳶尾花,剩余的為Virginica鳶尾花。通過關(guān)系圖可以直觀地分析各類鳶尾花的屬性值分布范圍。
3.3.1 數(shù)據(jù)處理
在進(jìn)行相關(guān)參數(shù)設(shè)定之前,首先要對(duì)鳶尾花數(shù)據(jù)集進(jìn)行一系列的數(shù)據(jù)操作,對(duì)數(shù)據(jù)集的操作可從以下兩個(gè)方面考慮:
(1)基于3.2節(jié)的數(shù)據(jù)分析,分析鳶尾花數(shù)據(jù)集中是否存在異常點(diǎn),如果存在,將異樣點(diǎn)刪除,并處理某些樣本屬性的丟失值。丟失的樣本屬性值通常由該屬性基于統(tǒng)計(jì)信息的平均值替換。
(2)對(duì)數(shù)據(jù)集進(jìn)行相關(guān)性分析,分析樣本屬性之間是否存在相關(guān)性,如果存在,去除相關(guān)的冗余屬性。
對(duì)處理過的數(shù)據(jù)進(jìn)行劃分,將原始數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集、測(cè)試數(shù)據(jù)集以及驗(yàn)證數(shù)據(jù)集三個(gè)部分。其中,訓(xùn)練數(shù)據(jù)集包含80組鳶尾花數(shù)據(jù),驗(yàn)證數(shù)據(jù)集包含40組鳶尾花數(shù)據(jù),驗(yàn)證集用于監(jiān)測(cè)過擬合現(xiàn)象以及超參數(shù)的調(diào)整,測(cè)試數(shù)據(jù)集包含30組鳶尾花數(shù)據(jù),用于驗(yàn)證模型的準(zhǔn)確性。
3.3.2 參數(shù)設(shè)定
根據(jù)鳶尾花種類,設(shè)定3種不同參數(shù)的隸屬度函數(shù),求解樣本基于不同鳶尾花種類的隸屬值。基于鳶尾花數(shù)據(jù)集的可視化分析,隸屬度函數(shù)中心位置參數(shù)Z分別設(shè)置為:Z1=5,Z2=6,Z3=7,其中Z1表示Setosa隸屬度函數(shù)的中心,Z2表示Versicolor隸屬度函數(shù)的中心,Z3表示Virginica隸屬度函數(shù)的中心。e1=1,e2=e3=2,l1=l2=l3=2。
3.3.3 神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)
基于對(duì)鳶尾花數(shù)據(jù)集的分析,設(shè)計(jì)具有單隱含層的神經(jīng)網(wǎng)絡(luò)模型,采用隨機(jī)梯度下降法對(duì)網(wǎng)絡(luò)模型的參數(shù)進(jìn)行學(xué)習(xí)。神經(jīng)網(wǎng)絡(luò)輸入層中的節(jié)點(diǎn)個(gè)數(shù)等同于隸屬度函數(shù)的種類個(gè)數(shù)。輸出層節(jié)點(diǎn)的數(shù)量與數(shù)據(jù)集中存在的類的數(shù)量相同。神經(jīng)網(wǎng)絡(luò)的輸入層為數(shù)據(jù)樣本對(duì)各類鳶尾花的隸屬度值,共有3個(gè)神經(jīng)元,輸出層為類別種類,共有3個(gè)輸出神經(jīng)元。對(duì)隱含層設(shè)置不同個(gè)數(shù)的神經(jīng)元,通過實(shí)驗(yàn)選擇最優(yōu)隱含層神經(jīng)元個(gè)數(shù),以樣本分類準(zhǔn)確率為評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如表3所示。
表3 神經(jīng)元數(shù)目準(zhǔn)確率測(cè)試結(jié)果
根據(jù)實(shí)驗(yàn)結(jié)果,最終隱藏層神經(jīng)元數(shù)目設(shè)定為4,選取ReLU作為隱含層和輸出層的激活函數(shù),Swish-B作為輸入層和隱含層的激活函數(shù),設(shè)置網(wǎng)絡(luò)誤差為0.000 1,學(xué)習(xí)率為0.01,最大迭代次數(shù)為100。模型訓(xùn)練過程的性能變化如圖3所示。
圖3 不同隱層神經(jīng)元數(shù)目下的訓(xùn)練性能
3.3.4 數(shù)據(jù)集訓(xùn)練和預(yù)測(cè)
在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段,首先將鳶尾花數(shù)據(jù)集分為訓(xùn)練集、驗(yàn)證集、預(yù)測(cè)集三部分,對(duì)其進(jìn)行模糊化處理。把經(jīng)模糊化處理后的訓(xùn)練集應(yīng)用于提出的模糊神經(jīng)網(wǎng)絡(luò),訓(xùn)練網(wǎng)絡(luò)以建立模糊神經(jīng)網(wǎng)絡(luò)分類模型。在測(cè)試階段,通過模糊化處理后的測(cè)試集對(duì)模型性能進(jìn)行評(píng)估,根據(jù)測(cè)試集樣本預(yù)測(cè)的準(zhǔn)確性對(duì)模型進(jìn)行評(píng)估。其詳細(xì)步驟如下:
Step1:隨機(jī)抽取鳶尾花數(shù)據(jù)集中的80條樣本數(shù)據(jù)作為訓(xùn)練集,隨機(jī)抽取40條樣本數(shù)據(jù)作為驗(yàn)證集,剩余部分?jǐn)?shù)據(jù)作預(yù)測(cè)集。
Step2:利用式(8)~式(10)求解出預(yù)測(cè)集樣本和驗(yàn)證集樣本的隸屬度矩陣D1、D2。
Step3:設(shè)置網(wǎng)絡(luò)誤差、學(xué)習(xí)率等相關(guān)參數(shù),利用訓(xùn)練集的隸屬度矩陣D1對(duì)網(wǎng)絡(luò)進(jìn)行100次的迭代訓(xùn)練,利用驗(yàn)證集的隸屬度矩陣D2對(duì)神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行調(diào)整。模型迭代過程中的損失變化如圖4所示。
圖4 模型訓(xùn)練過程中的迭代損失變化
Step4:利用測(cè)試集樣本預(yù)測(cè)的準(zhǔn)確率對(duì)模型的性能進(jìn)行評(píng)估。
選取引言部分四種經(jīng)典的基于證據(jù)理論的樣本分類算法,計(jì)算傳統(tǒng)算法基于鳶尾花數(shù)據(jù)集的分類準(zhǔn)確率,與文中提出的樣本分類方法進(jìn)行比較,結(jié)果如圖5、表4所示。
表4 準(zhǔn)確率比較
圖5 相關(guān)算法精確度比較
隨著模糊神經(jīng)網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)的增加,樣本分類的準(zhǔn)確性最終穩(wěn)定到0.98,與基于證據(jù)理論的分類算法相比,樣本分類的準(zhǔn)確率明顯提升。
由于基于證據(jù)理論的分類算法在進(jìn)行樣本分類時(shí)過于復(fù)雜,樣本的某些屬性間存在相關(guān)性。另外,在復(fù)雜數(shù)據(jù)集上,基于證據(jù)理論的樣本分類算法往往不夠理想,隨著樣本屬性的增加,算法過程變得越來(lái)越復(fù)雜,數(shù)據(jù)集中樣本的沖突變得明顯。該文提出了一種基于模糊神經(jīng)網(wǎng)絡(luò)的樣本分類算法,并采用鳶尾花數(shù)據(jù)集對(duì)算法進(jìn)行檢驗(yàn)。與傳統(tǒng)的樣本分類算法相比,一方面,基于模糊神經(jīng)網(wǎng)絡(luò)的樣本分類算法不需要過多關(guān)注求解過程中的計(jì)算以及樣本某些屬性間是否存在相關(guān)性。另一方面,基于證據(jù)理論的樣本分類算法中存在如何將權(quán)重合理分配給相關(guān)特征等問題,基于模糊神經(jīng)網(wǎng)絡(luò)的樣本分類算法引入隨機(jī)梯度下降的方法,通過多次迭代訓(xùn)練結(jié)合反向傳播算法自動(dòng)求解出合理的權(quán)重值。由實(shí)驗(yàn)結(jié)果可知,基于模糊神經(jīng)網(wǎng)絡(luò)的樣本分類算法對(duì)分類問題的平均準(zhǔn)確性為98%,樣本分類的準(zhǔn)確性與傳統(tǒng)數(shù)據(jù)算法相比顯著提高。