基于譜聚類(lèi)改進(jìn)交叉的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)方法的技術(shù)領(lǐng)域,具體是引入譜聚類(lèi)改進(jìn)交叉后的 遺傳算法用在復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)上的一種新方法,是一種利用計(jì)算機(jī)技術(shù),遺傳算法,譜聚 類(lèi)等方法實(shí)現(xiàn)的關(guān)于復(fù)雜網(wǎng)絡(luò)研究中社區(qū)結(jié)構(gòu)發(fā)現(xiàn)的方法。
【背景技術(shù)】
[0002] 自然界及人類(lèi)社會(huì)中存在大量的復(fù)雜系統(tǒng)都可以用不同網(wǎng)絡(luò)來(lái)描述。在用網(wǎng)絡(luò)描 述復(fù)雜系統(tǒng)時(shí)用網(wǎng)絡(luò)中結(jié)點(diǎn)表示復(fù)雜系統(tǒng)中的個(gè)體,結(jié)點(diǎn)之間的邊來(lái)表示系統(tǒng)中個(gè)體間的 聯(lián)系?,F(xiàn)實(shí)世界中不同領(lǐng)域的網(wǎng)絡(luò)系統(tǒng),如社會(huì)網(wǎng)絡(luò),生物網(wǎng)絡(luò),信息網(wǎng)絡(luò),技術(shù)網(wǎng)絡(luò),交通 運(yùn)輸網(wǎng)絡(luò)等都可以從復(fù)雜網(wǎng)絡(luò)的角度和方法來(lái)描述,從而可以很好的理解復(fù)雜系統(tǒng)的性質(zhì) 和功能。
[0003] 社區(qū)結(jié)構(gòu)作為復(fù)雜網(wǎng)絡(luò)的重要特性之一,已經(jīng)成為復(fù)雜網(wǎng)絡(luò)研究的一個(gè)熱點(diǎn),復(fù) 雜網(wǎng)絡(luò)社區(qū)挖掘是一種多學(xué)科交叉的前沿研究熱點(diǎn),近年來(lái),很多有關(guān)復(fù)雜網(wǎng)絡(luò)社區(qū)挖掘 的方法被提出,并且也取得了一定的效果。這些方法大致可以分為:基于劃分的社區(qū)挖掘 方法,如經(jīng)典的GN算法;基于模塊性優(yōu)化的社區(qū)挖掘方法,如經(jīng)典的FN算法,SA算法,F(xiàn)UA 算法等;基于標(biāo)簽傳播的社區(qū)挖掘方法,如著名的標(biāo)簽算法LPA ;基于動(dòng)力學(xué)的社區(qū)挖掘方 法,如MCL算法,F(xiàn)EC算法等;基于仿生計(jì)算的社區(qū)挖掘方法,主要側(cè)重于蟻群算法和遺傳算 法。
[0004] 雖然有大量的社區(qū)挖掘算法被提出,但很多算法本身還存在需要具備一定的先驗(yàn) 知識(shí),效率低,收斂速度慢,易陷入局部最優(yōu)等缺點(diǎn),如經(jīng)典的GN算法存在效率太低,時(shí)間 復(fù)雜度高的問(wèn)題,模擬退火算法SA存在收斂速度慢的問(wèn)題等。因此如何快速,精確高效地 發(fā)掘復(fù)雜網(wǎng)絡(luò)中的社區(qū)結(jié)構(gòu)是研究復(fù)雜網(wǎng)絡(luò)的一個(gè)熱點(diǎn)問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 為了解決復(fù)雜網(wǎng)絡(luò)社區(qū)挖掘方法中存在收斂速度慢,易于陷入局部最優(yōu)等問(wèn) 題,本發(fā)明提出了一種基于譜聚類(lèi)改進(jìn)交叉的遺傳算法用于復(fù)雜網(wǎng)絡(luò)社區(qū)挖掘的新方法 (Genetic Algorithm with an improved Crossover based on Spectral Clustering for Community Mining, GACSCM)〇
[0006] 本發(fā)明采用的技術(shù)方案如下:
[0007] 根據(jù)生物進(jìn)化中避免近親繁殖的思想,及遺傳算法中種群本身是不斷進(jìn)化且是朝 著越來(lái)越相似的方向進(jìn)化的事實(shí),采用了思想簡(jiǎn)單,易于實(shí)現(xiàn),且可以在任意形狀的樣本空 間上聚類(lèi)等優(yōu)點(diǎn)的譜聚類(lèi)對(duì)種群中的個(gè)體進(jìn)行了劃分,在交叉操作時(shí)選取不同劃分中的個(gè) 體進(jìn)行遺傳操作,從而增加種群多樣性,避免陷入局部最優(yōu);相似個(gè)體雖不能有效地增加種 群多樣性,但可有效地維持個(gè)體的優(yōu)良性狀,保持種群的進(jìn)化方向,因此在進(jìn)行不同劃分個(gè) 體間遺傳操作的同時(shí)同一劃分中的個(gè)體也進(jìn)行遺傳操作,選取兩種方式產(chǎn)生的個(gè)體中最優(yōu) 的兩個(gè)個(gè)體為子代個(gè)體。兩種方式的交叉操作同時(shí)進(jìn)行避免算法陷入局部最優(yōu)和收斂速度 過(guò)慢,調(diào)節(jié)收斂速度和尋找最優(yōu)解之間的平衡。
[0008] 基于譜聚類(lèi)改進(jìn)交叉的遺傳算法的復(fù)雜網(wǎng)絡(luò)社區(qū)挖掘方法,其特征包括以下步 驟:
[0009] 步驟1,對(duì)網(wǎng)絡(luò)社區(qū)挖掘問(wèn)題進(jìn)行編碼,方法如下:
[0010] 對(duì)網(wǎng)絡(luò)中的結(jié)點(diǎn)進(jìn)行編號(hào),采用基于基因座鄰接的編碼表示種群中的個(gè)體,也被 稱為染色體,該編碼是一種基于圖的表示方法,以網(wǎng)絡(luò)中的結(jié)點(diǎn)數(shù)目表示染色體的編碼長(zhǎng) 度,染色中的每個(gè)基因?qū)?yīng)于網(wǎng)絡(luò)中的一個(gè)結(jié)點(diǎn),基于結(jié)點(diǎn)和其大多數(shù)相鄰結(jié)點(diǎn)在同一社 區(qū),令每個(gè)基因 i取其在網(wǎng)絡(luò)中的任意相鄰結(jié)點(diǎn)j作為等位基因。
[0011] 步驟2,種群初始化,方法如下:
[0012] 按照步驟1的編碼規(guī)則進(jìn)行初始種群個(gè)體的產(chǎn)生,具體步驟如下
[0013] 1)初始化一個(gè)編碼長(zhǎng)度為n,每個(gè)基因的等位基因都為0的染色體
[0014] 2)順序遍歷每個(gè)基因位,查找其在網(wǎng)絡(luò)中的相鄰結(jié)點(diǎn)的集合
[0015] 3)在相鄰結(jié)點(diǎn)集合中隨機(jī)選擇一個(gè)結(jié)點(diǎn)作為該基因位的等位基因
[0016] 4)重復(fù)步驟1)、2)、3)完成規(guī)定數(shù)目的個(gè)體的初始化工作
[0017] 步驟3,適應(yīng)度函數(shù)的選取
[0018] 2004年Newman網(wǎng)絡(luò)模塊度函數(shù)的提出,將復(fù)雜網(wǎng)絡(luò)挖掘問(wèn)題轉(zhuǎn)化為一種優(yōu)化問(wèn) 題,優(yōu)化的目標(biāo)就是模塊度函數(shù),模塊度函數(shù)能夠刻畫(huà)社區(qū)劃分結(jié)果的好壞程度,是評(píng)價(jià)網(wǎng) 絡(luò)中社區(qū)結(jié)構(gòu)好壞的性能指標(biāo),而基于遺傳算法的復(fù)雜網(wǎng)絡(luò)社區(qū)挖掘中,每個(gè)個(gè)體都代表 了對(duì)網(wǎng)絡(luò)中社區(qū)的一種劃分,因此本方法采用模塊度函數(shù)Q為遺傳算法中的適應(yīng)度函數(shù)。
[0019] 模塊度函數(shù)Q的表達(dá)式如下:
[0021] 其中,A = (Auv)nXn表不網(wǎng)絡(luò)G中結(jié)點(diǎn)的鄰接矩陣,如果結(jié)點(diǎn)u與V之間存在邊連 接,則A uv= 1,否則Auv= 0 ; δ (r (u), r (V))為社區(qū)認(rèn)同度函數(shù),其中,r (u)表示u所在 的社區(qū),r(v)表示V所在的社區(qū),如果r(u) =r(v),其取值為1,表示結(jié)點(diǎn)u和V在同一社 區(qū)中;否則取值為〇,表示結(jié)點(diǎn)u和V不在同一社區(qū)中;ku表示結(jié)點(diǎn)u的度,1表示結(jié)點(diǎn)V的 度;E表示網(wǎng)絡(luò)G中總的邊數(shù),被定義為
[0022] 步驟4,譜聚類(lèi)劃分種群個(gè)體
[0023] 譜聚類(lèi)算法的基本思想來(lái)源于譜圖理論,把聚類(lèi)問(wèn)題看成是一個(gè)圖分割問(wèn)題,其 本質(zhì)是利用拉普拉斯矩陣的特征向量進(jìn)行聚類(lèi),是一種配對(duì)聚類(lèi)算法。
[0024] 譜聚類(lèi)的具體實(shí)現(xiàn)如下:
[0025] 1)計(jì)算相似度矩陣S
[0026] 首先構(gòu)造一個(gè)無(wú)向加權(quán)圖,將種群中的個(gè)體看作網(wǎng)絡(luò)中的結(jié)點(diǎn),個(gè)體之間的相似 度看作網(wǎng)絡(luò)中的邊權(quán),設(shè)種群規(guī)模為m
[0027] 種群中的個(gè)體之間的相似度采用歸一化的互信息表示,設(shè)A,B為種群中的兩個(gè)個(gè) 體,則A,B之間的相似度S (A,B)計(jì)算如下:
[0029] 其中C為置亂矩陣,其元素 Cu表示個(gè)體A中社區(qū)i與個(gè)體B中社區(qū)j中的擁有的 共同結(jié)點(diǎn)的數(shù)目。CjPCB分別為個(gè)體A與個(gè)體B所代表劃分中是社區(qū)的數(shù)目。C 1.是矩陣 C中第i行元素之和,C j是矩陣C中第j列元素之和,N為復(fù)雜網(wǎng)絡(luò)中結(jié)點(diǎn)的總數(shù)。如A與 B完全相同則S (A,B) = 1,若完全不同則S (A,B) = 0, S (A,B)越大說(shuō)明兩個(gè)體A與B之間 越相似。則S為一個(gè)m行m列的元素值為個(gè)體間相似度的鄰接矩陣。
[0030] 2)計(jì)算度矩陣D
[0031] 取矩陣S中的每一列元素之和為矩陣D對(duì)角線上的元素,其他位置元素為0得到 D
[0032] 3)計(jì)算拉普拉斯矩陣L = D-W
[0033] 4)按特征值從小到大進(jìn)行排序求出前k個(gè)特征值及對(duì)應(yīng)的特征向量,將這些特征 向量排列起來(lái)組成一個(gè)矩陣m行k列的矩陣M
[0034] 5)將矩陣M的每一行看作k維空間的一個(gè)向量,使用k-means方法進(jìn)行聚類(lèi)。聚 類(lèi)結(jié)果中每一行所屬的類(lèi)別即為種群中相應(yīng)個(gè)體所屬的類(lèi)別。
[0035] 步驟5,交叉操作
[0036] 1)采用輪盤(pán)賭選擇一個(gè)個(gè)體P1,記下該個(gè)體所屬的類(lèi)別標(biāo)號(hào)i,從類(lèi)別i中選擇一 個(gè)最好的個(gè)體P 2。
[0037] 2)選擇與類(lèi)別i距離最遠(yuǎn)的類(lèi)別j,選擇類(lèi)別j中的最好個(gè)體p3
[0038] 3)個(gè)體P1與個(gè)體p 2進(jìn)行交叉操作產(chǎn)生的個(gè)體的集合為X
[0039] 4)選擇個(gè)體?1與p 2中,與個(gè)體p 3距離較遠(yuǎn)的個(gè)體,假設(shè)為p 2,個(gè)體p2與個(gè)體p 3進(jìn) 行交叉操作產(chǎn)生的個(gè)體集合為Y
[0040] 5)通過(guò)貪婪算法選擇集合X和集合Y中最好的兩個(gè)個(gè)體作為子代個(gè)體。
[0041] 步驟6,變異操作
[0042] 變異時(shí)選擇變異基因位