葉廷宇,葉 軍,2+,王 暉,2,王 磊,2
1.南昌工程學(xué)院 信息工程學(xué)院,南昌330000
2.江西省水信息協(xié)同感知與智能處理重點實驗室(南昌工程學(xué)院),南昌330000
-means 是一種簡單、實用、高效并得到廣泛應(yīng)用的聚類算法,但該算法在處理模糊、不確定數(shù)據(jù)聚類時有局限性。為此,Lingras等人引入粗糙集理論對其進行改進,提出了一種粗糙-means 聚類算法,該算法把確定屬于某個簇類的數(shù)據(jù)劃分到下近似集,不能確定屬于某個簇類的模糊數(shù)據(jù)歸為邊界集,較好地解決了模糊、不確定數(shù)據(jù)聚類問題。但粗糙-means 聚類算法采用人為設(shè)置固定權(quán)重和閾值方式影響了聚類精度,以及初始中心的隨機選取導(dǎo)致聚類結(jié)果穩(wěn)定性降低。研究者從不同角度提出了改進算法,文獻[3-4]結(jié)合模糊集,引入了模糊隸屬度,通過隸屬度計算下近似和邊界集中對象的權(quán)重,改變了所有對象取相同權(quán)重值的問題,增強了算法邊界處理能力。文獻[5-6]提出了一種根據(jù)每次迭代的聚類結(jié)果動態(tài)地確定下一次迭代聚類中樣本點的自適應(yīng)權(quán)重方法,改進了原算法對經(jīng)驗權(quán)重的依賴。文獻[7]引入粒計算理論,運用組合法尋找初始聚類中心,并且通過動態(tài)調(diào)整上近似集和邊界集的權(quán)重,避免了孤立點的影響。文獻[8]提出了一種基于香農(nóng)熵理論熵的加權(quán)多視角協(xié)同劃分模糊聚類算法,給出了多視角自適應(yīng)加權(quán)方法,提高了聚類性能。文獻[9]用上近似取代了聚類中心更新公式中的邊界集,以相對距離取代絕對距離作為相異度的判斷標(biāo)準(zhǔn),有效減小了離群點影響。文獻[10]在歐氏距離中引入權(quán)值系數(shù)來初始化聚類中心,給出了一種自適應(yīng)確定值的方法,改變了傳統(tǒng)隨機給定值的方式,提高了穩(wěn)定性。文獻[11-12]結(jié)合群智能優(yōu)化算法,分別用遺傳算法和蟻群算法改進了初始中心點選擇方式,降低了初始中心點的敏感性和數(shù)據(jù)差異性帶來的不利影響。文獻[13]引入?yún)^(qū)間2-型模糊集度量概念,以此自適應(yīng)調(diào)整邊界區(qū)域的樣本對交叉簇類的影響系數(shù),削弱了邊界區(qū)域?qū)π∫?guī)模類簇的中心均值迭代的影響。文獻[14-15]提出了一種以局部密度和距離的混合度量方法來確定邊界區(qū)域的對象歸屬,給出了一種魯棒學(xué)習(xí)策略尋找到最佳簇類數(shù),提高了交疊類簇的聚類精度。文獻[16-17]引入了一種對簇類不均衡程度的自適應(yīng)度量方法,提出了以類簇不平衡程度作為自適應(yīng)調(diào)整權(quán)值的粗糙模糊均值聚類算法,提高了聚類效果。文獻[18]提出了一種以維度加權(quán)的歐氏距離計算樣本的密度和權(quán)重的方法,以此為基礎(chǔ)選擇個聚類中心,降低了初始聚類中心選取的敏感性。文獻[19]定義了一種點與集合的計算方法,通過不斷找出滿足一定數(shù)量離集合最近點來得到個聚類中心,提高了初始聚類中心的穩(wěn)定性。
隨著聚類的應(yīng)用領(lǐng)域不斷擴大,其研究價值凸顯,進一步提高聚類質(zhì)量是廣大研究者一直努力的目標(biāo)。人工蜂群算法(artificial bee colony,ABC)是較晚涌現(xiàn)出的群智能算法。一些研究結(jié)果表明,人工蜂群算法在求解連續(xù)優(yōu)化問題時性能要優(yōu)于蟻群、遺傳算法和粒子群優(yōu)化算法。本文將聚類看作一個組合優(yōu)化的問題,引入ABC 算法進行了改進:一是設(shè)計了更為合理的自適應(yīng)調(diào)整上近似、邊界權(quán)重和閾值方法,并且在此基礎(chǔ)上定義了新的聚類中心更新計算公式;二是構(gòu)造了蜜源適應(yīng)度函數(shù)引導(dǎo)蜂群向最優(yōu)秀的蜜源進行全局搜索,且避免搜索中陷入局部最優(yōu);三是以ABC 算法每次迭代求得的最優(yōu)解作為初始聚類中心并同時進行聚類迭代,克服了原算法對初始聚類中心敏感等問題。實驗結(jié)果表明,本文算法提高了聚類效果。
Lingras 等人把粗糙集的上、下近似兩個算子引入-均值算法中,提出了粗糙-means 聚類算法,其主要內(nèi)容如下:
該算法主要思想是:以是否存在其他聚類中心與對象的距離與最小距離的差小于閾值為依據(jù),把待分類對象分配到上近似或下近似集,并由式(1)更新聚類中心的位置,不斷重復(fù)這個過程,直到每個聚類中心不變。
在后續(xù)大量的改進算法中,典型的有Mitra等人提出的粗糙模糊-means 算法,該算法在考慮下近似和邊界集中對象分布不均勻的基礎(chǔ)上引入模糊隸屬度,改進了原算法賦予對象相同的權(quán)重的缺陷,隸屬度定義為:
其得到的類C的聚類中心m更新公式為:
其中,為類別數(shù),d為數(shù)據(jù)點x到類C中心點的距離,為模糊指數(shù),和分別表示下近似和邊界集的權(quán)重,且+=1。
隨后,Maji 等人對上述式(3)隸屬度定義進行了修正,定義如下:
式(4)把屬于下近似集即確定了歸屬關(guān)系的對象隸屬度設(shè)為1,屬于邊界集即不能確定歸屬關(guān)系的對象需要計算隸屬度,其得到聚類中心更新公式與式(3)一樣。顯然,式(4)更符合實際,并且減少了計算工作量。
上述這些改進方法是以對象的實際分布距離為依據(jù),賦予對象不同的權(quán)重值,修正了下近似和邊界集中所有對象取相同的權(quán)重的缺陷。但是,上述研究并沒有改變、和采用固定權(quán)重的方式,其忽視了它們在迭代過程中對聚類中心的影響。
Karaboga 等人模擬自然界蜂群的采蜜行為提出了人工蜂群算法,該算法將蜜源位置轉(zhuǎn)化成優(yōu)化問題的可行解,蜜源的含蜜量對應(yīng)優(yōu)化問題的適應(yīng)度函數(shù),蜂群尋找蜜源的過程是求最優(yōu)解的過程。蜂群由引領(lǐng)蜂、跟隨蜂和偵察蜂三種分工不同的個體構(gòu)成。一般引領(lǐng)蜂個數(shù)和蜜源個數(shù)相等,且一個蜜源只有一只引領(lǐng)蜂開采,算法基本步驟如下:
初始化階段:隨機產(chǎn)生個候選解(即蜜源位置){,,…,x},它們是維向量,并計算每個候選解的適應(yīng)度,并從大到小排列,前一半為引領(lǐng)蜂,后一半為跟隨蜂和偵察蜂。設(shè)定蜂群總循環(huán)搜索次數(shù)為,每個蜜源的可重復(fù)開采次數(shù)為。
引領(lǐng)階段:引領(lǐng)蜂在其蜜源周圍進行搜索,并由式(5)進行蜜源位置更新,保留適應(yīng)度值較好的蜜源。
其中,v表示新蜜源位置,∈{1,2,…,},∈{1,2,…,},、為隨機數(shù)且≠,φ為[-1,1]內(nèi)的隨機數(shù),其控制著x鄰域的搜索范圍。
跟隨階段:跟隨蜂在獲得引領(lǐng)蜂傳達的蜜源信息后,采用輪盤賭方法,由式(6)得到的概率選擇引領(lǐng)蜂,然后跟隨蜂依據(jù)式(5)在蜜源的領(lǐng)域產(chǎn)生一個新的蜜源,并且比較前后兩個蜜源的適應(yīng)度值,保留函數(shù)適應(yīng)度較好的蜜源。
其中,p是第個解的選擇概率;fit是第個解的適應(yīng)度值;是解的個數(shù)。當(dāng)引領(lǐng)蜂經(jīng)過次循環(huán)后,蜜源不再變化,則引領(lǐng)蜂離開該蜜源,變?yōu)閭刹旆?,隨機產(chǎn)生新的蜜源。
人工蜂群算法具有魯棒性強、搜索能力強等優(yōu)點。但存在容易陷入局部最優(yōu)、后期收斂速度慢等問題,研究者們提出了多種改進方法。如Wang等人針對不同問題設(shè)計了與之對應(yīng)的目標(biāo)函數(shù),提出一種多策略蜂群算法;Gao 等將差異進化算法與全局最優(yōu)粒子改進的蜂群算法相結(jié)合,提出了一種收斂速度更快的算法,該方法將群體最好解的信息引入到候選蜜源的生成中,位置更新公式修改為:
其中,x為迄今蜂群找到的最好蜜源,α∈[0,1]。本文借鑒Gao 等構(gòu)建的蜜源位置更新式(7)來優(yōu)化本文算法。
在粗糙-means 算法中,聚類中心更新式(1)中的和采用的是固定的權(quán)重值,即在整個聚類過程中這兩個值始終保持不變。由于聚類中心的尋找是一個不斷迭代更新的動態(tài)過程,這種固定權(quán)重的方式?jīng)]有客觀反映下近似和邊界集對聚類中心影響的程度。合理度量下近似和邊界區(qū)域?qū)τ诰垲愔行奈恢酶掠绊懙闹匾?,動態(tài)分配和的權(quán)值是提高聚類精度的有效途徑之一。為此,文獻[5]和文獻[7]提出了改進方法,在分析了聚類中心初期與后期位置的變化情況下,構(gòu)造了一個Logistic增長曲線:
式中,為聚類算法迭代次數(shù),、、為函數(shù)的調(diào)節(jié)參數(shù)。從式(8)可以看出,隨著迭代次數(shù)的增加,權(quán)重值逐漸增大,而逐漸減小,該曲線在一定程度上動態(tài)地反映了其對聚類中心作用的重要程度。但該曲線存在不足:一是,曲線中的調(diào)節(jié)參數(shù)、和人為事先給定,主觀性強,當(dāng)?shù)螖?shù)不斷增大時,下近似集的權(quán)重幾乎沒有發(fā)生變化;二是,曲線沒有體現(xiàn)下近似和邊界集中對象數(shù)量的變化情況,也沒有反映不同對象在上近似和邊界集中分布的差異性。文獻[9]給出了一種以下近似集中對象個數(shù)和上近似集中對象個數(shù)比值的自適應(yīng)確定權(quán)值公式:
文獻[12]給出了一種以下近似集中對象個數(shù)和邊界集中對象個數(shù)比值的自適應(yīng)確定權(quán)值公式:
式(9)和式(10)以樣本對象的歸屬變化來動態(tài)確定和的權(quán)重值,客觀上體現(xiàn)了在聚類過程中上、下近似集和邊界集中數(shù)據(jù)對象數(shù)量的此消彼長動態(tài)變化情況。但是,僅以上、下近似集和邊界集中對象個數(shù)來確定權(quán)重,無法反映類內(nèi)和內(nèi)間樣本對象分布的差異性。事實上,同一類別內(nèi),數(shù)據(jù)集中的對象相對于聚類中心的距離分布不盡相同,其對聚類中心的作用不一樣。不同類別間,數(shù)據(jù)集中的對象對于聚類中心的重要度也存在區(qū)別。對于和權(quán)重值的確定,不僅要考慮下近似和邊界集中對象數(shù)量變化的影響,也要體現(xiàn)對象對于聚類中心因距離分布差異性帶來的影響。綜合這些因素,本文給出一種自適應(yīng)動態(tài)調(diào)整下近似和邊界集的權(quán)重方法。
設(shè)x為任意類別C下近似集中的對象,m為C的聚類中心,則下近似集中對象到聚類中心的距離分布為:
設(shè)x為任意類別C邊界集中的對象,m為C的聚類中心,則邊界集中對象到聚類中心的距離分布為:
閾值決定了樣本對象是劃分到類別中的上近似還是下近似集中。在經(jīng)典的粗糙-means 算法中是人為給定的一個定值,這個值不會隨迭代而變化,這影響了對象的精確劃分。文獻[5]給出了一種動態(tài)改變的方法:
其中,為迭代次數(shù),>1。式(15)雖然可以動態(tài)調(diào)整,但其沒有合理將對象劃分到所屬類別的集合中。一個好的閾值應(yīng)能夠明確區(qū)分出樣本所屬的區(qū)域,得到的劃分中樣本歸屬的不確定性小。從聚類過程對象變化情況來看,開始時,對象的歸屬關(guān)系不明確,應(yīng)該大一些,使得對象大多劃入上近似集;隨著迭代次數(shù)增加,對象的歸屬關(guān)系變得明朗,越來越多的對象劃入類的下近似集,應(yīng)該小一些。而式(15)隨著迭代次數(shù)增加反而變大,這會讓一些本該劃分到下近似集中的對象劃歸到了邊界集中,使對象歸屬的不確定性較大,從而導(dǎo)致聚類精度顯著下降。
其中,是迭代次數(shù),>1,其對應(yīng)的閾值曲線如圖1所示。
圖1 自適應(yīng)閾值的取值曲線Fig.1 Curve of adaptive threshold
從圖1 可以看出,隨著迭代次數(shù)增加,逐漸變小,越來越多的對象被劃分到下近似集即確定集中,得到劃分中對象歸屬的不確定性不斷變小。顯然,逐漸變小可以加快對象被劃歸到下近似集中的步伐,有效減少迭代次數(shù),從而提高算法的收斂速度,這在后續(xù)的實驗中也得到了驗證。
適應(yīng)度函數(shù)直接決定著蜂群的進化方向、迭代次數(shù)以及解的優(yōu)劣。在ABC 算法中,吸引蜂群的主要因素取決于蜜源的含蜜量的多少,蜜源含蜜量越多,則代表它所處的位置好,其吸引能力就強,由此得到的適應(yīng)度函數(shù)值越優(yōu)。為使同一類別集合中的對象最大程度相似,而不同類別集合中的對象最大程度相異,本文通過定義類別內(nèi)聚集度和類別間離散度函數(shù)來構(gòu)造目標(biāo)函數(shù),并以此來尋找最優(yōu)的初始聚類中心并進行聚類。
(類內(nèi)聚集度函數(shù))設(shè)對象集={,,…,x},有個樣本,個聚類中心C={,,…,m},則內(nèi)聚集度函數(shù)為:
(類間離散度函數(shù))設(shè)對象集={,,…,x},有個樣本,個聚類中心C={,,…,m},則聚類中心的類間離散度函數(shù)為:
(適應(yīng)度函數(shù))適應(yīng)度計算如下:
其中,(C)為類內(nèi)聚集度函數(shù)值,(C)為類間離散度函數(shù)值。在式(19)中,類內(nèi)聚集度距離越小,類間離散度距離越大,適應(yīng)度函數(shù)值也就越大,獲得的聚類效果越好。
本文算法的核心思想是以蜂群每次迭代得到的蜜源位置作為新的聚類中心,并在此基礎(chǔ)上進行粗糙-means聚類,交替進行。算法將適應(yīng)度函數(shù)fit的值代表蜜源的質(zhì)量,由式(19)可知,fit值越大,蜜源的含蜜量越高,這樣既保證了每個類別內(nèi)的樣本對象最大程度聚集,不同類別之間的距離盡可能離散,從而可以避免孤立點的影響,提高了算法的魯棒性,并有效減少迭代次數(shù),在尋找到最優(yōu)的聚類中心的同時得到最佳聚類結(jié)果。算法的流程步驟如下:
給定類別個數(shù),初始閾值,引領(lǐng)蜂和跟隨蜂個數(shù)各為,最大迭代次數(shù),控制循環(huán)上限數(shù);當(dāng)前迭代次數(shù),初始值為1。
根據(jù)式(19)計算各個蜜源的適應(yīng)度值,并按大小排序,將前一半設(shè)置為引領(lǐng)蜂,后一半為跟隨蜂。
引領(lǐng)蜂按式(7)在鄰域內(nèi)搜索新的蜜源,采用貪婪選擇原則,若新蜜源適應(yīng)度值大于原蜜源值,則更新蜜源位置;否則,保持不變。搜索完成后,由式(6)計算概率p。
依據(jù)概率p,跟隨蜂基于輪盤賭規(guī)則選擇引領(lǐng)蜂,完成所有選擇后,按式(7)進行鄰域搜索,同樣按照貪婪原則保留適應(yīng)度值高的蜜源。
若有引領(lǐng)蜂在次迭代后,蜜源位置不改變,則引領(lǐng)蜂變?yōu)閭刹旆洌㈦S機產(chǎn)生一個新的蜜源位置。
若達到最大迭代次數(shù),則算法結(jié)束并輸出個簇類,否則轉(zhuǎn)到步驟3,=+1。
與傳統(tǒng)的粗糙-means 算法時間復(fù)雜度(×××)相比,本文算法運算次數(shù)更多。遺傳算法改進的粗糙-means算法時間復(fù)雜度為(+×××),蟻群算法改進的粗糙-means 算法時間復(fù)雜度約為(××××),其中為蟻群個數(shù)。顯然,本文算法運算次數(shù)比文獻[11]和文獻[12]算法要少。但是,每執(zhí)行一次算法,本文算法的運算量稍大一些。
為驗證本文算法的性能和效果,數(shù)據(jù)采用了UCI機器學(xué)習(xí)庫中五個數(shù)據(jù)集,如表1 所示。軟件環(huán)境為Win 7 操作系統(tǒng)及應(yīng)用軟件Matlab9.0,硬件為CPU Intel I5 1040 3.6 GHz,內(nèi)存6 GB。性能比較采用類內(nèi)距離、類間距離、準(zhǔn)確率、誤差平方、迭代次數(shù)和運行時間等指標(biāo),與文獻[1](傳統(tǒng)的粗糙-means算法)、文獻[11](遺傳算法改進的粗糙-means 算法)和文獻[12](蟻群算法改進的粗糙-means算法)進行比較。
表1 實驗數(shù)據(jù)集信息Table 1 Experimental dataset information
實驗中相關(guān)數(shù)據(jù)設(shè)置:文獻[1]和文獻[11]采用的是固權(quán)重方式,對不同參數(shù)值在Iris 數(shù)據(jù)集上實驗得到的結(jié)果如圖2 所示,在上述其他數(shù)據(jù)集上也得到類似結(jié)果。
圖2 反映了固權(quán)重方式對和值敏感,不同的取值會改變聚類中心位置,從而導(dǎo)致聚類準(zhǔn)確率顯著下降,這說明了固權(quán)重方式?jīng)]有準(zhǔn)確反映聚類過程中下近似和邊界集對聚類中心影響的程度。因此,實驗時文獻[1]和文獻[11]取最佳值,=0.8,=0.2,=0.05;文獻[12]和本文算法采用自適應(yīng)權(quán)重,∈[0.5,0),取各數(shù)據(jù)集對應(yīng)的類別數(shù),蜂群個數(shù)=60,=300,=20。分別在所選的5 個UCI 數(shù)據(jù)集上進行20次實驗取平均值,實驗結(jié)果如表2~表6所示。
圖2 Iris上不同權(quán)重取值的分類準(zhǔn)確率Fig.2 Accuracy of different weight values on Iris
表2 Iris數(shù)據(jù)集性能比較Table 2 Performance comparison on Iris dataset
表3 Wine數(shù)據(jù)集性能比較Table 3 Performance comparison on Wine dataset dataset
表4 Balance-Scale數(shù)據(jù)集性能比較Table 4 Performance comparison on Balance-Scale dataset
表5 Segmentation 數(shù)據(jù)集性能比較Table 5 Performance comparison on Segmentation dataset
表6 Sonar數(shù)據(jù)集性能比較Table 6 Performance comparison on Sonar dataset
從式(17)和式(18)定義的類內(nèi)和類間距離可知,類內(nèi)距離越小,對象對聚類中心的分布越緊湊,對象相似度高;類間距離大,則不同類別中對象差異性大,得到的聚類結(jié)果誤差就小。從表2~6 對比可知,本文算法在五個數(shù)據(jù)集上的類內(nèi)距離、類間距離、誤差平方和迭代次數(shù)四個指標(biāo)都明顯好于其他三個算法。準(zhǔn)確率比較上,本文算法在上述五個數(shù)據(jù)集上好于其他三個算法。在大數(shù)據(jù)和高維數(shù)據(jù)集上,傳統(tǒng)粗糙-means 算法聚類的準(zhǔn)確率顯著下降,本文算法依然取得了較好的效果。在運行時間上,由于本文算法每迭代一次,要計算下近似和邊界集中對象相對聚類中心的距離分布和對象的隸屬度,計算量比其他三個文獻稍大,在Iris和Wine 數(shù)據(jù)集上程序運行耗時稍多一些,在Balance-Scale、Segmentation 和Sonar 數(shù)據(jù)集上與文獻[12]相當(dāng)。
對于聚類效果比較,本文采用文獻[7]中用各類內(nèi)對象對于整個數(shù)據(jù)中心的分布與類內(nèi)對象距離的比值來衡量聚類效果,它是一種有效衡量聚類效果優(yōu)劣的指標(biāo)。其公式為:
由式(20)可知,同一類別中的對象分布越緊湊,距離越小;不同類別中的對象之間越離散,其到整個數(shù)據(jù)中心的距離越大。顯然,比值的值越大,聚類效果就越好。實驗得到的四種算法在三個數(shù)據(jù)集上距離比值的情況分別如圖3~圖7 所示。
從圖3~圖7 中的比值可以看出,本文算法得到了較好的聚類效果,而且收劍速度明顯快于其他三個算法。顯然,由人工蜂群優(yōu)化的算法得到的聚類結(jié)果更符合數(shù)據(jù)實際分布特征。
圖3 Iris數(shù)據(jù)集上距離比值比較Fig.3 Object distance ratio on Iris dataset
圖4 Wine數(shù)據(jù)集上距離比值比較Fig.4 Object distance ratio on Wine dataset
圖5 Balance-Scale數(shù)據(jù)集上距離比值比較Fig.5 Object distance ratio on Balance-Scale dataset
圖6 Segmentation 數(shù)據(jù)集上距離比值比較Fig.6 Object distance ratio on Segmentation dataset
圖7 Sonar 數(shù)據(jù)集上距離比值比較Fig.7 Object distance ratio on Sonar dataset
本文結(jié)合人工蜂群算法,在借鑒研究者們研究成果的基礎(chǔ)上,對粗糙-means 聚類算法進行了改進。在下近似和邊界集權(quán)重分配改進方面,本文給出的自適應(yīng)動態(tài)確定下近似和邊界集的權(quán)重方法,既考慮了下近似和邊界集中對象數(shù)量變化的影響,也沒有忽略對象對于聚類中心因距離分布差異性帶來的影響,整體上提升了算法的性能。在初始聚類中心優(yōu)化方面,每次迭代以蜂群找到的最好蜜源更新聚類中心位置并進行聚類,為改善算法因?qū)Τ跏紨?shù)據(jù)的敏感性帶來的不利影響提供了思路。但是,本文算法中設(shè)計的自適應(yīng)權(quán)重調(diào)整方式增加了算法的計算工作量,在高維且樣本數(shù)量多的數(shù)據(jù)集上更為明顯;另外,簇類數(shù)值是事先根據(jù)已知簇類數(shù)的數(shù)據(jù)集給定好的。事實上,在實際應(yīng)用中,很多時候事先并不知道數(shù)據(jù)集被分成多少簇類最合適。因此,簇類數(shù)的選取對算法的聚類效果影響較大。后續(xù)將結(jié)合文獻[14]和文獻[15]提出的對未知簇類魯棒學(xué)習(xí)策略,進一步研究自適應(yīng)尋找最佳類別數(shù)的方法。此外,優(yōu)化本文算法的計算工作量,降低算法的時間復(fù)雜度,提升算法的執(zhí)行效率也是今后要繼續(xù)開展的研究工作。