龔 靜,劉現(xiàn)芳
(湖南環(huán)境生物職業(yè)技術(shù)學(xué)院,湖南 衡陽(yáng) 421005)
云計(jì)算背景下,信息技術(shù)獲取的數(shù)據(jù)信息呈現(xiàn)出海量爆發(fā)狀態(tài),人們所生產(chǎn)和運(yùn)用的數(shù)據(jù)增多,類(lèi)型也越來(lái)越復(fù)雜,采用數(shù)據(jù)挖掘技術(shù)從海量數(shù)據(jù)信息中挖掘出有價(jià)值的數(shù)據(jù),成為人們?cè)跀?shù)據(jù)方面的研究熱點(diǎn)。聚類(lèi)分析是大數(shù)據(jù)挖掘技術(shù)中的重要組成內(nèi)容,將各類(lèi)相同特征的數(shù)據(jù)進(jìn)行分類(lèi),是大數(shù)據(jù)挖掘算法中的核心內(nèi)容之一。但是,在傳統(tǒng)的聚類(lèi)分析中,模糊均值算法和K 均值算法都需要采用多次數(shù)據(jù)迭代的方式進(jìn)行數(shù)據(jù)挖掘,該種數(shù)據(jù)運(yùn)行方式不僅使數(shù)據(jù)挖掘效率受到限制,數(shù)據(jù)挖掘的質(zhì)量也因此受到負(fù)面影響。云計(jì)算背景下,人們?cè)O(shè)計(jì)出群智能算法,并以該算法為前提展開(kāi)數(shù)據(jù)聚類(lèi)挖掘。當(dāng)今時(shí)代,網(wǎng)絡(luò)數(shù)據(jù)龐大,人們需要有選擇的處理數(shù)據(jù)信息,云計(jì)算的方式可以將多項(xiàng)數(shù)據(jù)協(xié)調(diào)在一起,打破用戶在空間和時(shí)間方面的數(shù)據(jù)應(yīng)用限制,獲取無(wú)限數(shù)據(jù)資源,使用的大數(shù)據(jù)挖掘技術(shù)也更加靈活。
作為信息挖掘的一項(xiàng)主要研究方向,聚類(lèi)分析日益受到人們的關(guān)注。聚類(lèi)的輸入通常是一個(gè)沒(méi)有分類(lèi)標(biāo)識(shí)的數(shù)據(jù),人們事先可能知道這種數(shù)據(jù)聚成幾個(gè)簇,也可能不知道聚成幾個(gè)簇。通過(guò)分析這種數(shù)據(jù),可以按照相應(yīng)的聚類(lèi)規(guī)則,合理分配記錄集,從而使相同的記錄被分配到一個(gè)簇中,不同的數(shù)據(jù)分配到不同的簇中[1]。
聚類(lèi)分析算法問(wèn)題一直是研究人類(lèi)活動(dòng)的一項(xiàng)非常重要的內(nèi)容。人們?cè)缭谶h(yuǎn)古時(shí)代就形成了對(duì)事物做出分類(lèi)識(shí)別的思想,“物以類(lèi)聚,人以群分”就是對(duì)這一思想的形象表述。一個(gè)人早在孩童時(shí)代,就利用不斷完善潛意識(shí)中的分類(lèi)模型,來(lái)學(xué)習(xí)辨別不同的物種。隨著人們對(duì)自然界和社會(huì)認(rèn)識(shí)地不斷深入,要處理的數(shù)據(jù)也出現(xiàn)了如下發(fā)展趨勢(shì):人類(lèi)規(guī)模愈來(lái)愈大,彼此關(guān)聯(lián)愈來(lái)愈復(fù)雜,分類(lèi)也愈來(lái)愈精細(xì),對(duì)提出的問(wèn)題需求也愈來(lái)愈高[2]。這時(shí)單純依靠定性分析法,是無(wú)法滿足要求的。為克服這種困難,人類(lèi)首先引進(jìn)了數(shù)理教育這種得力的教學(xué)工具,并在此基礎(chǔ)上進(jìn)一步發(fā)展產(chǎn)生了數(shù)據(jù)分類(lèi)學(xué)(Numerical Taxonomy),對(duì)分類(lèi)對(duì)象進(jìn)行定性的研究。而經(jīng)過(guò)定性的研究后,在分類(lèi)的過(guò)程中不再只是憑借經(jīng)驗(yàn)和知識(shí),還得借助于對(duì)數(shù)據(jù)本身的分析方法對(duì)數(shù)據(jù)對(duì)象加以分類(lèi)。數(shù)據(jù)分類(lèi)方法不但能夠運(yùn)用于分類(lèi)領(lǐng)域,還能夠用于聚類(lèi)領(lǐng)域,也因此產(chǎn)生了基于數(shù)值分析的聚類(lèi)分析[3]。
電腦的廣泛應(yīng)用已深入到人們生活的方方面面,存儲(chǔ)商業(yè)貿(mào)易記錄、管理企業(yè)工作、監(jiān)視生產(chǎn)操作、提供娛樂(lè)工具和消息交換等。由于互聯(lián)網(wǎng)的出現(xiàn),人們也步入網(wǎng)絡(luò)信息社區(qū),大量的數(shù)據(jù)信息被存儲(chǔ)下來(lái),但如果人們對(duì)數(shù)據(jù)信息聚類(lèi)處理的方法還是通過(guò)人工,則無(wú)法實(shí)現(xiàn)。這也導(dǎo)致利用計(jì)算機(jī)進(jìn)行數(shù)據(jù)信息聚類(lèi)分析的新技術(shù)的誕生與發(fā)展。
聚類(lèi)分析算法盡管已被應(yīng)用在很多領(lǐng)域中,但是都存在著這樣或是那樣的缺點(diǎn)。這種不足總體來(lái)說(shuō)主要有如下4 個(gè)方面。
一是對(duì)初始化參數(shù)敏感,最后結(jié)論往往強(qiáng)烈地取決于初始化工作參量。在這種算法的初始化輸入中,不僅要求聚類(lèi)的數(shù)據(jù),還需要為用戶輸入一些相應(yīng)的工作參數(shù),而這種參量所確定的高低也影響著聚類(lèi)結(jié)論的高低。對(duì)于普通用戶來(lái)講,參數(shù)的選取具有一定的難度[4]。
二是難以得到最佳聚類(lèi)。一組含有n 個(gè)數(shù)據(jù)群的數(shù)據(jù)集合,如果假設(shè)將其聚成k 個(gè)群,就具有k"種可能,但目前還缺乏一項(xiàng)能從k" 種聚類(lèi)中找到最佳聚類(lèi)的計(jì)算。因?yàn)楝F(xiàn)在的計(jì)算通常是利用某個(gè)引導(dǎo)算子,完成某種在全部空間上的不完整查找,而且利用這種引導(dǎo)算子常常會(huì)陷入局部最優(yōu)解。
三是聚類(lèi)的效率問(wèn)題。為了用好無(wú)導(dǎo)師學(xué)習(xí)方法,如果并不了解大數(shù)據(jù)分析或集中信息的分布狀況,就會(huì)產(chǎn)生聚類(lèi)分析法結(jié)論的有效性問(wèn)題,即在所得出的聚類(lèi)分析法結(jié)論中類(lèi)別的數(shù)量是不是合理?在眾多的聚類(lèi)算法中哪一種得出的結(jié)論更合理?又或者在一個(gè)聚類(lèi)算法中,哪個(gè)參數(shù)所得出的聚類(lèi)分析法結(jié)論更合理?這都是無(wú)從判斷的[5]。
四是對(duì)噪聲信息的高敏感性?,F(xiàn)在許多聚類(lèi)算法都對(duì)噪聲數(shù)據(jù)非常靈敏,而噪聲數(shù)據(jù)的出現(xiàn)也影響著這種計(jì)算的應(yīng)用范圍。
模糊C-均值聚類(lèi)算法所遵從的算法思想為硬聚類(lèi)思想,數(shù)據(jù)集利用來(lái)表示,而表示第j 個(gè)數(shù)據(jù)樣本的s 個(gè)特征向量,x 表示第j 個(gè)數(shù)據(jù)樣本在維度k上的特征值。將數(shù)據(jù)集X 進(jìn)行分組,形成C 個(gè)子集,可利用Y={X1,X2,…,Xc},C∈[2,n]。如果Y 符合式(1)的要求,那么,Y 可以被視為硬C 分組。
假設(shè)樣本xj屬于子集xi的隸屬度為uij,那么可以用隸屬矩陣U=[uij]C×n來(lái)表示硬C 分組,其中uij?{0,1}。因此,數(shù)據(jù)集X 的硬C 分組可以用公式(2)來(lái)表示。
因此,模糊C 分組可以用式(3)來(lái)表示。
對(duì)于數(shù)據(jù)集X={x1,x2,…,xk,…,xn}?Rs來(lái)說(shuō),n是數(shù)據(jù)集X 中元素的數(shù)量,s 是樣本x 中屬性值的個(gè)數(shù)。c 個(gè)聚類(lèi)中心組成1 個(gè)矩陣V=[v1v2… vi… vc]s×c,其中vi={vi1,vi2,…,vis}為第i 個(gè)聚類(lèi)中心的元素,c 為聚類(lèi)的類(lèi)別數(shù),則模數(shù)C-均值聚類(lèi)算法的目標(biāo)函數(shù)公式為
混合蛙跳算法針對(duì)蛙在巖石上覓食時(shí)的種群分布變化所給出的計(jì)算。算法于2003 年提出,時(shí)間雖然不短,但相關(guān)的論文不多,仍有較大的研究和改進(jìn)空間。
混合蛙跳算法中,每一只青蛙的定位都代表著一種可能解。如果青蛙們所在的水池上有數(shù)塊石頭,在一代,青蛙們都將被分配在石頭上。在這一代中,只有石頭上位置比較糟糕的青蛙能跳躍。這些青蛙首先是向著在同一個(gè)石頭上的最優(yōu)預(yù)測(cè)方位的青蛙方向跳躍,若新的方位仍比原方位差則向其全局最優(yōu)方位跳躍,若新的仍比原方位差則在解空間里隨機(jī)跳躍一次[6]??梢钥闯雒恐惶鴦?dòng)青蛙在每代中至少跳動(dòng)1 次,至多跳動(dòng)3 次,但由于每次跳動(dòng)的青蛙數(shù)量等于石塊數(shù),故當(dāng)石塊數(shù)、青蛙數(shù)/3時(shí),每代總跳動(dòng)次數(shù)小于青蛙總數(shù)。
如上所述,模糊C-均值聚類(lèi)計(jì)算可以通過(guò)將目標(biāo)函數(shù)進(jìn)一步優(yōu)化到最小的方式來(lái)解決。不過(guò),這種方式容易使最后解落入局部極小值點(diǎn)附近,且收斂速度慢。身為一個(gè)群體智能算法,混和蛙跳具備著較強(qiáng)的全局搜索特征。為此,將混合蛙跳算法與模糊的C-均值聚類(lèi)算法加以組合,來(lái)改善聚集效率并進(jìn)一步優(yōu)化精度[7]?;旌贤芴哪:鼵-均值聚類(lèi)計(jì)算過(guò)程包括以下5 個(gè)步驟。
步驟1:初始化。初始化青蛙類(lèi)型的總量N,聚類(lèi)中心個(gè)數(shù)c,并建立隨機(jī)的歸屬度原始矩陣,進(jìn)行初步的系統(tǒng)聚類(lèi)分析,統(tǒng)計(jì)各種類(lèi)型的聚類(lèi)中心,以用作初始混合蛙跳算法中的青蛙映射代碼。
步驟2:行為選擇。方法中模擬了青蛙群體在行為時(shí)所獲得的每只青蛙的適應(yīng)力指數(shù)值,并對(duì)青蛙按降序進(jìn)行了排名和分類(lèi)。
步驟3:從每個(gè)子群中開(kāi)始局部搜尋并更換子種群中的最差個(gè)體,直至獲得局部搜尋的最高迭代數(shù)量[8]。
步驟4:將子群體混合,并及時(shí)更新種群的最優(yōu)值。
步驟5:反復(fù)步驟2~步驟4,直至得到最大值給定迭代頻率,此時(shí)的全局最優(yōu)解便是初始聚類(lèi)中心。使用模糊C-均值聚類(lèi)方法,可以得到結(jié)果的聚類(lèi)矩陣分組。最后利用最大隸屬度法則,在對(duì)手護(hù)具集中已有的數(shù)據(jù)加以屬類(lèi)型標(biāo)記[9]。
融合算法流程見(jiàn)圖1。
圖1 融合算法流程
前文闡述了群體智能算法的融合思路,為了判斷融合算法是否有效,和傳統(tǒng)大數(shù)據(jù)聚類(lèi)挖掘算法相比是否更先進(jìn),此次選取典型Iris 數(shù)據(jù)集以及另外3 組人工數(shù)據(jù)集合展開(kāi)仿真實(shí)驗(yàn),實(shí)驗(yàn)過(guò)程中將4 組實(shí)驗(yàn)數(shù)據(jù)分別代入到傳統(tǒng)模糊C-均值聚類(lèi)算法、POS-FCM 算法、混合蛙跳算法以及此次所形成的融合算法當(dāng)中。4 組實(shí)驗(yàn)數(shù)據(jù)見(jiàn)表1。
表1 4 組實(shí)驗(yàn)數(shù)據(jù)
根據(jù)表1 中的數(shù)據(jù)可以了解到,仿真實(shí)驗(yàn)中數(shù)據(jù)最大迭代次數(shù)在人工數(shù)據(jù)集2 中,迭代次數(shù)為500 次。將4 組數(shù)據(jù)在4 種算法中均執(zhí)行40 次,并且計(jì)算每個(gè)經(jīng)過(guò)迭代的數(shù)據(jù)指標(biāo)平均值,此時(shí)4 組數(shù)據(jù)集在不同算法中的實(shí)驗(yàn)結(jié)果如表2 到表5 所示。此時(shí)可以借助分類(lèi)正確率的相關(guān)計(jì)算公式來(lái)判斷此次聚類(lèi)結(jié)果的有效性情況。計(jì)算分類(lèi)正確率的公式為
表2 模糊C-均值聚類(lèi)算法實(shí)驗(yàn)結(jié)果
表3 混合蛙跳算法實(shí)驗(yàn)結(jié)果
表4 PSO-FCM 算法實(shí)驗(yàn)結(jié)果
表5 融合算法實(shí)驗(yàn)結(jié)果
從表2 到表5 中的數(shù)據(jù)可以了解到,因?yàn)樗惴ㄖ袑?duì)于數(shù)據(jù)集的初始數(shù)值具有較高的敏感度,因此,模糊C-均值聚類(lèi)算法所呈現(xiàn)出的聚類(lèi)效果是4 種算法中最差的。而在混合蛙跳算法中的結(jié)果可以了解到,該算法具有較好的數(shù)據(jù)收斂速度以及魯棒性,該種特性克服了部分?jǐn)?shù)據(jù)的極值問(wèn)題,但是在對(duì)大數(shù)據(jù)進(jìn)行聚類(lèi)劃分時(shí),劃分精確度明顯低于其他算法。從PSO-FCM 算法實(shí)驗(yàn)結(jié)果來(lái)看,該算法結(jié)合了模糊C-均值聚類(lèi)算法以及粒子群優(yōu)化算法兩種算法,呈現(xiàn)出群智優(yōu)化算法的特征,具備局部數(shù)據(jù)搜索能力,讓聚類(lèi)效果增強(qiáng),以此來(lái)提升算法的準(zhǔn)確性[10]。從本文提出的融合算法思路仿真實(shí)驗(yàn)結(jié)果來(lái)看,借助混合蛙跳算法對(duì)模糊C-均值聚類(lèi)算法進(jìn)行調(diào)整,優(yōu)化聚類(lèi)中心值,使算法在獲取數(shù)據(jù)時(shí),選擇更加適合的函數(shù),不僅具備全局搜索數(shù)據(jù)的能力,且大幅度提升搜索精準(zhǔn)度,呈現(xiàn)出的聚類(lèi)效果更好。
綜上所述,本文所提出的融合算法思路更具備群體智能算法的特征,且該種大數(shù)據(jù)挖掘算法綜合了混合蛙跳算法以及模糊C-均值聚類(lèi)算法的優(yōu)點(diǎn),能夠?qū)λ惴ㄖ械臄?shù)據(jù)進(jìn)行參數(shù)調(diào)整,使算法具備全局?jǐn)?shù)據(jù)搜索能力。此次研究結(jié)果表明,和其他算法相比,融合算法下的數(shù)據(jù)聚類(lèi)挖掘有效解決了數(shù)據(jù)迭代過(guò)程中的局部陷阱問(wèn)題,呈現(xiàn)出的聚類(lèi)效果更好,數(shù)據(jù)挖掘的準(zhǔn)確度提升。