一種基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法
【專利摘要】一種基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,從全局中心節(jié)點(diǎn)建立初始社區(qū),再根據(jù)聯(lián)系緊密程度一層一層地擴(kuò)展社區(qū),最后把一些過小的社區(qū)融合到大社區(qū)中。初始化社區(qū)過程為:選取度數(shù)最大的k個節(jié)點(diǎn),按照節(jié)點(diǎn)的相似度合成若干個社區(qū)。擴(kuò)展社區(qū)過程首先標(biāo)記所有節(jié)點(diǎn)的層數(shù),然后根據(jù)節(jié)點(diǎn)與社區(qū)的鏈接強(qiáng)度把節(jié)點(diǎn)分到相應(yīng)的社區(qū)中。融合小社區(qū)過程首先要確定小社區(qū)的大小,計算小社區(qū)中的每個節(jié)點(diǎn)v的相鄰節(jié)點(diǎn)與每個大社區(qū)C的公共節(jié)點(diǎn)個數(shù),將v重新劃分到公共節(jié)點(diǎn)數(shù)最大的社區(qū)中。選取最優(yōu)結(jié)果過程要做10次試驗,根據(jù)擴(kuò)展模塊度選出最終結(jié)果。本發(fā)明不需要預(yù)先知道社區(qū)數(shù)目,時間復(fù)雜度為O(m),可以處理大型復(fù)雜網(wǎng)絡(luò),提高了社區(qū)劃分的準(zhǔn)確度。
【專利說明】一種基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,特別涉及一種基于層次聚類的社區(qū)劃分 方法。
【背景技術(shù)】
[0002] 復(fù)雜網(wǎng)絡(luò)一般指節(jié)點(diǎn)眾多、連接關(guān)系復(fù)雜的網(wǎng)絡(luò),如萬維網(wǎng)、論文引用網(wǎng)絡(luò)、在線 社交網(wǎng)絡(luò)、人際交往關(guān)系網(wǎng)絡(luò)以及新陳代謝網(wǎng)絡(luò)等。近年來,隨著互聯(lián)網(wǎng)的發(fā)展和普及,對 復(fù)雜網(wǎng)絡(luò)的研究越來越多。對復(fù)雜網(wǎng)絡(luò)的研究表明,復(fù)雜網(wǎng)絡(luò)中存在社區(qū)結(jié)構(gòu),社區(qū)內(nèi)部的 聯(lián)系很緊密,而不同社區(qū)之間的聯(lián)系則相對較少。社區(qū)是具有共同愛好或相似屬性的群體, 因此找出社區(qū)有助于我們挖掘復(fù)雜網(wǎng)絡(luò)中一些有用的信息,如復(fù)雜網(wǎng)絡(luò)中哪些人群具有相 同的愛好以及具有不同愛好的人群之間的聯(lián)系情況等。如何將一個復(fù)雜網(wǎng)絡(luò)劃分成若干個 社區(qū)是近年來的一個研究熱點(diǎn)。
[0003] 目前已經(jīng)有很多社區(qū)劃分方法,各有優(yōu)劣。常見的社區(qū)劃分方法主要有基于圖論 的方法和基于層次聚類的方法?;趫D論的方法是比較早期的方法,其主要思想是將網(wǎng)絡(luò) 劃分成k個大致相同大小的部分,使得每一部分內(nèi)部聯(lián)系緊密,而不同部分之間的聯(lián)系較 少。該類方法的代表方法有Kernighan-Lin方法、基于拉普拉斯圖特征值的譜平分法等?;?于層次聚類的方法是目前比較常見的方法。該類方法屬于社會學(xué)的方法,主要是分析社會 網(wǎng)絡(luò)之間的相似性或邊之間連接的強(qiáng)度?;趯哟尉垲惖姆椒ㄓ挚梢苑譃槟鄯椒ê头至?方法兩種類型,劃分的依據(jù)是在網(wǎng)絡(luò)中加邊還是去邊,加邊的是凝聚方法,而去邊的則是分 裂方法。該類方法的代表方法有GN方法、CNM方法、Newman快速方法等。
[0004] 通常來說,網(wǎng)絡(luò)中有多少個社區(qū)是很難預(yù)先知道的,但是有些方法,如 Kernighan-Lin方法、基于拉普拉斯圖特征值的譜平分法,卻需要先確定社區(qū)的數(shù)目。有些 方法的時間復(fù)雜度非常高,難以處理大型的網(wǎng)絡(luò),比如GN方法的時間復(fù)雜度為0(m2n)、CNM 方法的時間復(fù)雜度為〇(mdInn)、Newman快速方法的時間復(fù)雜度為0((m+n)n)。也有一些 方法的時間復(fù)雜度達(dá)到〇(m)。
[0005] 綜上,現(xiàn)有技術(shù)存在的缺點(diǎn)有:需要預(yù)先知道社區(qū)的數(shù)目,而實際上很難預(yù)先知道 社區(qū)的數(shù)目;方法的時間復(fù)雜度和空間復(fù)雜度較高,難以處理大型復(fù)雜網(wǎng)絡(luò);劃分出的社 區(qū)結(jié)果與真實社區(qū)偏差較大。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明要解決的技術(shù)問題是:本發(fā)明提出了一種基于層次聚類的社區(qū)劃分方法, 從全局中心節(jié)點(diǎn)建立初始社區(qū),再根據(jù)聯(lián)系緊密程度一層一層地擴(kuò)展社區(qū),最后把一些過 小的社區(qū)融合到大社區(qū)中,不需要預(yù)先知道社區(qū)數(shù)目,時間復(fù)雜度為〇(m),可以方便地處理 大型復(fù)雜網(wǎng)絡(luò)。
[0007] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案:一種基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃 分方法,包括初始化社區(qū)、擴(kuò)展社區(qū)、融合小社區(qū)以及選取最優(yōu)結(jié)果四部分。一座城市會有 一個或多個中心地區(qū),圍繞著中心一環(huán)一環(huán)向外擴(kuò)展。類比城市的結(jié)構(gòu),社區(qū)應(yīng)該由一個或 多個中心節(jié)點(diǎn),圍繞中心節(jié)點(diǎn)一層一層向外擴(kuò)展。中心節(jié)點(diǎn)在該社區(qū)中的度數(shù)最大,中心節(jié) 點(diǎn)作為第一層,第n層的節(jié)點(diǎn)主要與第n層和第n-1層的節(jié)點(diǎn)相連。
[0008] 初始化社區(qū)過程首先要選取全局中心節(jié)點(diǎn),即度數(shù)最大的k個節(jié)點(diǎn)。然后將這k 個節(jié)點(diǎn)按照節(jié)點(diǎn)的相似度合成若干個社區(qū)。節(jié)點(diǎn)V和社區(qū)C的中心節(jié)點(diǎn)w的相似度計算方 法如下:
[0009;
【權(quán)利要求】
1. 一種基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于:包括初始化社區(qū)、擴(kuò)展 社區(qū)、融合小社區(qū)以及選取最優(yōu)結(jié)果四個過程,從全局中心節(jié)點(diǎn)建立初始社區(qū),再根據(jù)聯(lián)系 緊密程度一層一層地擴(kuò)展社區(qū),最后把一些過小的社區(qū)融合到大社區(qū)中; 所述初始化社區(qū)過程為: 在復(fù)雜網(wǎng)絡(luò)中,與節(jié)點(diǎn)相連的所有節(jié)點(diǎn)的個數(shù)稱為該節(jié)點(diǎn)的度數(shù),將復(fù)雜網(wǎng)絡(luò)中的所 有節(jié)點(diǎn)按照節(jié)點(diǎn)的度數(shù)降序排列,選取度數(shù)最大的k個節(jié)點(diǎn),再將度數(shù)最大的節(jié)點(diǎn)劃分到 第一個社區(qū),并作為第一個社區(qū)的中心節(jié)點(diǎn),計算剩下k-1個節(jié)點(diǎn)中的每個節(jié)點(diǎn)V與每個社 區(qū)c的中心節(jié)點(diǎn)W的相似度,當(dāng)相似度大于某個閾值n時,將節(jié)點(diǎn)V劃分到社區(qū)c中,否則 將節(jié)點(diǎn)V作為新社區(qū)的中心節(jié)點(diǎn); 所述擴(kuò)展社區(qū)過程為: 初始化社區(qū)后,標(biāo)記所有節(jié)點(diǎn)的層數(shù),初始化社區(qū)過程中選中的節(jié)點(diǎn)作為第1層,將所 有與第n層節(jié)點(diǎn)相連的未標(biāo)記層數(shù)的節(jié)點(diǎn)標(biāo)記為第n+1層節(jié)點(diǎn),n為大于O的自然數(shù),直到 所有節(jié)點(diǎn)被標(biāo)記,擴(kuò)展初始社區(qū)的第n層,對標(biāo)記為第n層的每個節(jié)點(diǎn)V,計算節(jié)點(diǎn)V與每個 社區(qū)C的鏈接強(qiáng)度,若節(jié)點(diǎn)V與社區(qū)C的鏈接強(qiáng)度最大,將節(jié)點(diǎn)V劃分到社區(qū)C中,直到所 有節(jié)點(diǎn)都分到某個社區(qū)中; 所述融合小社區(qū)過程為: 若一個社區(qū)包含的節(jié)點(diǎn)數(shù)目小于t = max {5, HiaxtlCi I}/10},則稱其為小社區(qū),其中 max表示最大值,max {I Ci I}表示復(fù)雜網(wǎng)絡(luò)中所有社區(qū)的節(jié)點(diǎn)數(shù)目的最大值;擴(kuò)展社區(qū)后,需 要把小社區(qū)融合到大社區(qū)中;計算小社區(qū)中的每個節(jié)點(diǎn)V的相鄰節(jié)點(diǎn)與每個不是小社區(qū)的 社區(qū)C的公共節(jié)點(diǎn)個數(shù),若節(jié)點(diǎn)V的相鄰節(jié)點(diǎn)與社區(qū)C的公共節(jié)點(diǎn)個數(shù)達(dá)到最大,將節(jié)點(diǎn)V 重新劃分到社區(qū)C中; 所述選取最優(yōu)結(jié)果過程為: 對初始化社區(qū)過程中的相似度閾值n從〇. 1到1,以〇. 05-0. 1作為步長,重復(fù)上述三 個過程做10-20次試驗,對每一次試驗的劃分結(jié)果計算擴(kuò)展模塊度eQ,選取使得eQ最大的 劃分結(jié)果作為最終劃分結(jié)果。
2. 根據(jù)權(quán)利要求1所述的基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于:所述 初始化社區(qū)過程中選取度數(shù)最大的k個節(jié)點(diǎn)的具體過程為: k = max {k1; k2} k: = n/10+2 k2 = I {v I d (v) > max {d (v)} /2} 其中,max表示最大值,n為網(wǎng)絡(luò)中的節(jié)點(diǎn)個數(shù),d(v)表示節(jié)點(diǎn)v的度數(shù)。
3. 根據(jù)權(quán)利要求1所述的基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于:所述 初始化社區(qū)過程中計算剩下k-1個節(jié)點(diǎn)中的每個節(jié)點(diǎn)V與每個社區(qū)C的中心節(jié)點(diǎn)w的相似 度的公式為:
其中L(V) = Adj (V) U {v},Adj (V)表示與節(jié)點(diǎn)V相連的節(jié)點(diǎn)的集合。
4. 根據(jù)權(quán)利要求1所述的基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于:所述 擴(kuò)展社區(qū)過程中計算節(jié)點(diǎn)V與每個社區(qū)C的鏈接強(qiáng)度的公式是:
其中,d[v] [C]表示節(jié)點(diǎn)V和社區(qū)C之間的邊的數(shù)目。
5.根據(jù)權(quán)利要求1所述的基于層次聚類的復(fù)雜網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于:所述 擴(kuò)展模塊度eQ的計算方法如下:
其中,Ci為網(wǎng)絡(luò)中的社區(qū),Clin(Ci)表示社區(qū)Ci中邊的數(shù)目,Cl ext(Ci)表示社區(qū)Ci和其他 社區(qū)之間邊的數(shù)目,m表示網(wǎng)絡(luò)中邊的數(shù)目,en表示社區(qū)Ci中邊的數(shù)目占網(wǎng)絡(luò)中邊的數(shù)目 的比例,ai表示與社區(qū)Ci中的節(jié)點(diǎn)相連的邊的數(shù)目占網(wǎng)絡(luò)中邊的數(shù)目的比例。
【文檔編號】G06F19/00GK104361235SQ201410650818
【公開日】2015年2月18日 申請日期:2014年11月15日 優(yōu)先權(quán)日:2014年11月15日
【發(fā)明者】殷傳濤, 朱帥兵, 張笑顏, 吳念念, 管明輝 申請人:北京航空航天大學(xué)