饒先勝,宋晶晶,2+,楊習(xí)貝,于化龍,王平心
(1.江蘇科技大學(xué) 計算機學(xué)院,江蘇 鎮(zhèn)江 212003;2.閩南師范大學(xué) 數(shù)據(jù)科學(xué)與智能應(yīng)用福建省 高校重點實驗室,福建 漳州 363000;3.江蘇科技大學(xué) 理學(xué)院,江蘇 鎮(zhèn)江 212003)
粗糙集理論[1]是由Pawlak教授提出的用于數(shù)據(jù)分析與處理的數(shù)學(xué)工具。近年來,粗糙集理論在數(shù)據(jù)挖掘[2]、模式識別[3]、機器學(xué)習(xí)[4-6]等領(lǐng)域都得到了實際的應(yīng)用。為提高Pawlak粗糙集的適用性,Hu等提出了鄰域粗糙集[7,8],且得到了國內(nèi)外學(xué)者的廣泛關(guān)注[9-12]。值得注意的是在鄰域粗糙集中,所考慮的半徑對所得鄰域關(guān)系的分辨能力具有重要影響,過大的半徑會使鄰域關(guān)系的分辨能力較差。因此,為提高鄰域關(guān)系的分辨能力,Yang等[13]通過將偽標簽策略引入到鄰域和鄰域關(guān)系的構(gòu)造過程中,提出了偽標簽鄰域粗糙集。
屬性約簡[14-17]作為粗糙集理論中備受關(guān)注的問題之一,已經(jīng)得到眾多學(xué)者的重視。目前,有關(guān)約簡求解的方法主要有:窮舉法[18,19]和基于適應(yīng)度函數(shù)的啟發(fā)式方法[14]。盡管窮舉法可用于求解所有的約簡,但過于復(fù)雜和耗時。這也是基于適應(yīng)度函數(shù)的啟發(fā)式方法受到廣泛關(guān)注的原因。
基于偽標簽鄰域粗糙集的屬性約簡問題,可以使用啟發(fā)式方法來進行求解。但值得注意的是,在不同的半徑下進行屬性約簡時,往往會得到不同的約簡結(jié)果,而對于不同約簡結(jié)果,其意義或泛化性能也不盡相同。因此,在多個半徑下進行屬性約簡,有助于觀測約簡性能的變化趨勢和尋找具有較好泛化性能的約簡結(jié)果。為降低求解偽標簽鄰域粗糙集中一組半徑下約簡的時間消耗,本文在現(xiàn)有的啟發(fā)式算法基礎(chǔ)之上,通過考慮在屬性約簡過程中減少屬性的遍歷規(guī)模,來設(shè)計加速策略,以期加快屬性選擇的過程。
在鄰域粗糙集中,鄰域決策系統(tǒng)可表示為3元組NDS=,其中U是非空有限的樣本集合,稱為論域;A是條件屬性集合,d是決策屬性。?x∈U,d(x) 是樣本x的標簽。
給定一個鄰域決策系統(tǒng)NDS,則U/INDd={X1,X2,…,Xp} 為決策屬性d在論域上誘導(dǎo)出的劃分,其中INDd是關(guān)于決策屬性d的等價關(guān)系,即有INDd={(x,y)∈U×U∶d(x)=d(y)}。?Xq∈U/INDd,Xq表示具有相同標簽樣本組成的第q個決策類。
定義1[7]給定一個鄰域決策系統(tǒng)NDS,?B?A,則任意樣本x∈U關(guān)于B的鄰域為
δB(x)={y∈U∶ΔB(x,y)≤σ}
(1)
其中,ΔB(x,y) 表示由條件屬性集合B計算得到的樣本x和樣本y之間的距離,σ為半徑。
在本文中,采用歐式距離進行計算ΔB(x,y)。此外,論域上關(guān)于B的一個鄰域關(guān)系可以表示為δB={(x,y)∈U×U∶ΔB(x,y)≤σ}。
由定義1可以看出,給定一個半徑可以得到論域中任意樣本的鄰域和論域上的一個鄰域關(guān)系。但值得注意的是,當(dāng)給定的半徑過大時,兩個相似性程度較低的不同類別樣本仍可能具有鄰域關(guān)系,因而會導(dǎo)致在論域上得到的鄰域關(guān)系的分辨能力較差。因此,Yang等[13]在鄰域和鄰域關(guān)系的構(gòu)造過程中添加偽標簽約束,提出了偽標簽鄰域粗糙集。
定義2[13]給定一個偽標簽鄰域決策系統(tǒng)NDSPL,?B?A,則任意樣本x∈U關(guān)于B的偽標簽鄰域為
(2)
定義3[13]給定一個偽標簽鄰域決策系統(tǒng)NDSPL,?B?A,則決策屬性d關(guān)于條件屬性集合B的偽標簽鄰域下近似和上近似分別為
(3)
(4)
其中,Xq∈U/INDd,且
(5)
(6)
定義4[13]給定一個偽標簽鄰域決策系統(tǒng)NDSPL,?B?A,則決策屬性d關(guān)于條件屬性集合B的偽標簽近似質(zhì)量為
(7)
其中,|X| 表示集合X的基數(shù)。
定義5表明A的一個偽標簽近似質(zhì)量約簡是能夠使得該決策系統(tǒng)的偽標簽近似質(zhì)量不會降低的最小屬性子集。因此,根據(jù)定義5中的屬性約簡定義和偽標簽近似質(zhì)量,可以進一步設(shè)計如下用于評估候選屬性的重要度函數(shù)。
定義6 給定一個偽標簽鄰域決策系統(tǒng)NDSPL,?B?A,則?a∈A-B,a相對于B關(guān)于偽標簽近似質(zhì)量的重要度為
(8)
在定義6中,SigPL是根據(jù)偽標簽近似質(zhì)量來評估候選屬性重要度的函數(shù)。?a∈A-B,若SigPL(a,B,d) 的值越大,則屬性a對提高偽標簽近似質(zhì)量作用越大,即屬性a越重要。因此,可以將定義6中的重要度函數(shù)應(yīng)用于求解偽標簽近似質(zhì)量約簡的啟發(fā)式算法中。詳細的算法過程如下所示。
算法1:計算偽標簽近似質(zhì)量約簡的啟發(fā)式算法。
輸入:偽標簽鄰域決策系統(tǒng)NDSPL,半徑σ。
輸出:偽標簽近似質(zhì)量約簡B。
步驟1B←?;
(1) ?a∈A-B,計算其屬性重要度 SigPL(a,B,d);
(2) 選擇屬性b,滿足SigPL(b,B,d)=max{SigPL(a,B,d)∶a∈A-B};
(3)B←B∪;
EndWhile
步驟4 輸出偽標簽近似質(zhì)量約簡B。
由算法1的過程可知,算法1的主要時間消耗在于計算屬性的重要度。因此,算法1的時間復(fù)雜度為O(|U|2·|A|2),其中 |U| 和 |A| 分別表示樣本和屬性的個數(shù)。顯然,若使用算法1求解一組半徑下的約簡時,則需要在每個半徑上遍歷所有屬性來尋找滿足約束條件的屬性子集。此時,隨著半徑個數(shù)增多,這一方法將會具有較高的時間消耗。
為解決在1.2節(jié)中使用算法1在一組半徑上進行屬性約簡時,求解約簡的時間消耗會隨著半徑個數(shù)的增多而增長這一問題,本節(jié)將基于啟發(fā)式算法,考慮在前一個半徑下的約簡結(jié)果基礎(chǔ)之上,求解當(dāng)前半徑下的約簡,通過減少屬性遍歷的規(guī)模,進行屬性約簡加速策略的設(shè)計,以降低在偽標簽鄰域粗糙集中求解一組半徑下約簡的時間消耗。進一步,根據(jù)半徑的變化趨勢設(shè)計基于正向和逆向的屬性約簡加速算法。
給定一個偽標簽鄰域決策系統(tǒng)NDSPL和一組半徑R={σ1,σ2,…,σn}。假設(shè)σ1<σ2<…<σn且在半徑σs(1≤s 算法2:基于正向的屬性約簡加速算法。 輸入:偽標簽鄰域決策系統(tǒng)NDSPL,半徑σs下求得的約簡Bs,半徑σs+1(1≤s 輸出:半徑σs+1下的偽標簽近似質(zhì)量約簡Bs+1。 步驟1Bs+1←Bs; (1) ?a∈A-Bs+1,計算其屬性重要度SigPL(a,Bs+1,d); (2) 選擇屬性b,滿足SigPL(b,Bs+1,d)=max{SigPL(a,Bs+1,d)∶a∈A-Bs+1}; (3)Bs+1←Bs+1∪; EndWhile 步驟4 輸出半徑σs+1下的偽標簽近似質(zhì)量約簡Bs+1。 由算法2的過程可知,算法2與算法1的不同之處在于,當(dāng)計算某一半徑下的約簡時,算法2不再是在A中選擇具有最大重要度的屬性,而是在Bs的基礎(chǔ)上,對A-Bs中的屬性根據(jù)重要度進行選擇。由此可知,算法2的時間復(fù)雜度為O(|U|2·|A-Bs|2)。 值得注意的是,在基于正向的屬性約簡加速策略中,當(dāng)求解最小半徑下的約簡時,仍需要通過算法1來進行計算。 給定一個偽標簽鄰域決策系統(tǒng)NDSPL和一組半徑R={σ1,σ2,…,σn}。假設(shè)σ1<σ2<…<σn且在半徑σs(1≤s 算法3:基于逆向的屬性約簡加速算法。 輸入:偽標簽鄰域決策系統(tǒng)NDSPL,半徑σs下求得的約簡Bs,半徑σs-1(1 輸出:半徑σs-1下的偽標簽近似質(zhì)量約簡Bs-1。 步驟1Bs-1←Bs; (1) ?a∈A-Bs-1,計算其屬性重要度 SigPL(a,Bs-1,d); (2) 選擇屬性b,滿足SigPL(b,Bs-1,d)=max{SigPL(a,Bs-1,d):a∈A-Bs-1}; (3)Bs-1←Bs-1∪; EndWhile 步驟4 輸出半徑σs-1下的偽標簽近似質(zhì)量約簡Bs-1。 由算法3可以看出,基于逆向的屬性約簡加速策略與基于正向的屬性約簡加速策略不同之處在于,前者計算一組半徑下的約簡結(jié)果時,是根據(jù)半徑由大到小的變化趨勢進行計算,并在較大半徑下的約簡基礎(chǔ)之上進行下一個半徑下的約簡求解,而后者與其相反。此外,由算法3的具體過程可知,算法3的時間復(fù)雜度為O(|U|2·|A-Bs|2)。 值得注意的是,在基于逆向的屬性約簡加速策略中,當(dāng)求解最大半徑下的約簡時,仍需要通過算法1來進行計算。 為驗證所提加速策略的有效性,本節(jié)將從UCI數(shù)據(jù)集中選取8組數(shù)據(jù)進行實驗。數(shù)據(jù)的描述見表1。在實驗中選擇了30個半徑,它們的值為0.02,0.04,0.06,…,0.60。樣本的偽標簽是通過k-means聚類方法得到的,其中k的取值與所使用數(shù)據(jù)集的決策類數(shù)相同。此外,本節(jié)不僅將第2節(jié)所提的加速策略與算法1進行比較,還將與文獻[22]中的兩種加速算法進行對比。 表1 數(shù)據(jù)集描述 在本節(jié)實驗中,為了比較約簡結(jié)果的分類性能,采用了5折交叉驗證。但值得注意的是,由于交叉驗證的隨機性可能會導(dǎo)致訓(xùn)練集或測試集中某一類樣本較少。此時,若根據(jù)訓(xùn)練集和約簡結(jié)果對測試集進行預(yù)測,得到的預(yù)測結(jié)果可能會是不合理的。因此,可以通過對數(shù)據(jù)進行無偏采樣產(chǎn)生訓(xùn)練集和測試集。進一步,5折交叉驗證可以通過如下過程進行實現(xiàn)。首先,根據(jù)數(shù)據(jù)中樣本的真實標簽,將數(shù)據(jù)分成X1,X2,…,Xp。其次,對任意Xi(1≤i≤p),將其中數(shù)據(jù)隨機平均分成5份,即Xi1,Xi2,…,Xi5。記Tij=Xi-Xij,其中1≤j≤5。最后,在第一輪計算中,將T11∪T21∪…∪Tp1作為訓(xùn)練集進行屬性約簡,X11∪X21∪…∪Xp1用作測試集,根據(jù)約簡結(jié)果和訓(xùn)練集進行分類;在第二輪計算中,將T12∪T22∪…∪Tp2作為訓(xùn)練集進行屬性約簡,X12∪X22∪…∪Xp2用作測試集,根據(jù)約簡結(jié)果和訓(xùn)練集進行分類;類似地,在最后一輪計算中,將T15∪T25∪…∪Tp5作為訓(xùn)練集進行屬性約簡,X15∪X25∪…∪Xp5用作測試集,根據(jù)約簡結(jié)果和訓(xùn)練集進行分類。值得注意的是,本節(jié)中的實驗結(jié)果均為5折交叉驗證下所得度量的均值。 在本小節(jié)實驗中,將使用文中所提及的3種算法和文獻[22]中兩種加速算法求解一組半徑下的約簡,并對這5種方法求解一組半徑下約簡的總時間消耗和平均時間消耗進行對比。詳細的實驗結(jié)果見表2和表3。 表2 約簡求解的總時間消耗/s 表3 約簡求解的時間消耗/s的均值和標準差 觀察表2和表3,可以得到如下結(jié)論: (1)分別使用算法2和算法3以及文獻[22]中的兩種加速算法求解30個半徑下的約簡時,所消耗的總時間遠小于利用算法1求解該組半徑下的約簡消耗的時間總和。相較于文獻[22]中的算法2和算法3,利用文中所提的加速策略求解該組半徑下的約簡時,所消耗的總時間相對較高。這主要是因為在使用加速策略求解約簡的過程中,動態(tài)獲取樣本的偽標簽會帶來額外時間消耗,這是由偽標簽鄰域粗糙集模型本身的特性所決定的。 (2)利用文獻[22]中的算法2和算法3求解一組半徑下的約簡,其時間消耗的均值較小,且具有較小的標準差。相較于算法1,利用算法2和算法3求解約簡的消耗時間的平均值和標準差相對較小。由此可知,相較于算法1,所提加速策略和文獻[22]中加速算法均有助于降低求解一組半徑下約簡的時間消耗。 在本小節(jié)實驗中,將利用文中3種不同算法和文獻[22]中的兩種加速算法求解一組半徑下的約簡,并比較這5種方法所得約簡在測試集上的分類性能。實驗中使用的分類器為KNN分類器,K的取值為3。詳細的實驗結(jié)果見表4和表5。值得注意的是,表4比較的是這5種方法在該組半徑下得到的分類準確率的最大值,而表5比較的是該組半徑下得到的分類準確率的均值和標準差。 表4 分類準確率的最大值比較 表5 分類準確率的均值和標準差比較 觀察表4和表5,可以得到如下結(jié)論: (1)相較于算法1和文獻[22]中的兩種加速算法,利用算法2或算法3得到的約簡結(jié)果對測試集進行分類,能得到略高的分類準確率。而在多數(shù)數(shù)據(jù)集上利用算法1得到的分類準確率略高于或接近于利用文獻[22]中的算法2和算法3得到的分類準確率,這主要是因為偽標簽策略的引入,有助于提高鄰域關(guān)系的分辨能力,進而有利于得到具有較好分類能力的約簡。 (2)利用算法2求解的約簡結(jié)果對測試集進行分類,得到的分類準確率的均值高于利用算法1和文獻[22]中的兩種加速算法得到的分類準確率的均值,而利用算法3在多數(shù)數(shù)據(jù)集上得到的分類準確率的均值略高于利用算法1和文獻[22]中的算法3得到的分類準確率的均值。此外,利用算法2得到的分類準確率的標準差小于利用算法1和文獻[22]中的兩種加速算法得到的分類準確率的標準差,而通過算法3在多數(shù)數(shù)據(jù)集上得到的分類準確率的標準差略低于或接近于利用算法1和文獻[22]中的算法3得到的分類準確率的標準差。由此可知,相較于算法1和文獻[22]中兩種加速算法,所提加速策略不會降低約簡的分類能力,并且利用所得的約簡對測試集進行分類,能得到相對較穩(wěn)定的分類結(jié)果。 在本節(jié)實驗中,為比較約簡的分類性能,除分類準確率外,將采用G-mean對約簡結(jié)果提供的分類能力進行對比。因此,在實驗中將根據(jù)文中3種算法和文獻[22]中兩種加速算法在訓(xùn)練集上得到的約簡結(jié)果對測試集中的樣本進行分類,并根據(jù)分類結(jié)果和樣本的真實標簽計算G-mean。類似于3.1節(jié)和3.2節(jié),該組半徑下G-mean的最大值、均值以及標準差將用于最終比較。詳細的比較結(jié)果見表6和表7。 表6 G-mean的最大值比較 表7 G-mean的均值和標準差比較 觀察表6和表7,可以得到如下結(jié)論: (1)利用算法2或算法3計算約簡,然后對測試集進行分類并計算G-mean,相較于表6中的其它3種算法,能得到略高的G-mean值。 (2)通過算法2得到的G-mean均值高于利用算法1和文獻[22]中的兩種加速算法得到的G-mean均值,且其標準差相對較小。而通過算法3在大多數(shù)數(shù)據(jù)集上得到的 G-mean 均值略高于利用算法1和文獻[22]中算法3得到的G-mean均值,并且其標準差相對較小。由此可知,相較于使用啟發(fā)式算法和文獻[22]中兩種加速算法,使用文中所提加速策略在計算一組半徑下的約簡時,所得約簡的分類性能并不會降低,且利用約簡結(jié)果進行分類,得到的分類結(jié)果相對較穩(wěn)定。 在基于偽標簽鄰域粗糙集的多個半徑下進行屬性約簡時,往往需要在每個半徑上遍歷所有的屬性來尋找滿足約束條件的屬性子集。顯然,這一方法求解約簡的時間消耗會隨著半徑個數(shù)的增加而增長。鑒于此,基于啟發(fā)式方法的搜索過程,通過減少屬性遍歷的規(guī)模,設(shè)計了屬性約簡加速策略。這一策略通過在前一個半徑下的約簡結(jié)果之上求解當(dāng)前半徑下的約簡,來減少求解約簡的時間消耗,進而提供加速的效果。此外,實驗結(jié)果表明所提加速策略可以減少求解一組半徑下約簡所消耗的時間,并且不會降低約簡提供的分類能力。在本文的基礎(chǔ)上,下一步的工作有: (1)文中僅使用了偽標簽近似質(zhì)量作為屬性約簡的度量,進一步將采用其它度量如偽標簽條件熵、偽標簽鄰域決策錯誤率等構(gòu)造適應(yīng)度函數(shù),并進行相應(yīng)的加速算法設(shè)計。 (2)文中僅使用了偽標簽鄰域粗糙集設(shè)計屬性約簡的加速策略,進一步將在其它粗糙集模型如K近鄰粗糙集[9]中考慮相應(yīng)的加速策略。2.2 基于逆向的屬性約簡加速策略
3 實驗分析
3.1 算法時間消耗的比較
3.2 分類準確率的比較
3.3 G-mean比較
4 結(jié)束語