基于標簽傳播算法面向寄遞數(shù)據(jù)的并行化社團發(fā)現(xiàn)方法
【技術領域】
[0001]本發(fā)明涉及一種基于寄遞數(shù)據(jù)來構建寄遞網(wǎng)絡的方法,尤其是涉及一種基于標簽傳播算法面向寄遞數(shù)據(jù)的并行化社團發(fā)現(xiàn)方法。
【背景技術】
[0002]社會網(wǎng)絡分析的研究起源于20世紀20年代初,側重于研究社會實體之間的關系,例如:組成員內(nèi)部的交流,國家之間的貿(mào)易,或公司之間的經(jīng)濟交易。隨著信息的快速發(fā)展,社交網(wǎng)絡復雜度越來越大,無論網(wǎng)絡管理者還是網(wǎng)絡研究人員,都希望對社交網(wǎng)絡結構有清晰的認識。社區(qū)挖掘對理解社交網(wǎng)絡結構有著重要意義,網(wǎng)絡社區(qū)結構的發(fā)現(xiàn)對于網(wǎng)絡拓撲結構分析、網(wǎng)絡功能性分析以及網(wǎng)絡行為預測具有非常重要的理論意義以及實用價值,在社會網(wǎng)及生物網(wǎng)等領域有廣泛應用,現(xiàn)已被廣泛應用于社交網(wǎng)絡、恐怖組織識別等多個領域。
[0003]首先,基于聚類的社團發(fā)現(xiàn)算法往往僅考慮節(jié)點的屬性信息,導致忽略其它的有用信息(如邊的權值),而且它需要一個預先給定的輸入?yún)?shù)(網(wǎng)絡中社團的數(shù)目),導致社團劃分的準確性不高。其次,考慮到基于標簽傳遞算法不需要任何輸入?yún)?shù),而且具有線性的時間復雜度,收斂速度較快,而且挖掘的精確度也較高,適合于大規(guī)模網(wǎng)絡中社團挖掘。最后,由于計算機技術和互聯(lián)網(wǎng)技術的迅猛發(fā)展,人們獲取數(shù)據(jù)的能力不斷增強,需要分析的網(wǎng)絡規(guī)模也從原來的幾十至幾百個結點上升到百萬至千萬級的規(guī)模,導致非分布式算法已不再適用于較大規(guī)模網(wǎng)絡中社團發(fā)現(xiàn)。而Hadoop平臺中的MapReduce計算框架十分適合處理大規(guī)模數(shù)據(jù),因此在社區(qū)挖掘算法中引入MapReduce計算框架,利用分布式計算來解決的大規(guī)模寄遞網(wǎng)絡中社團發(fā)現(xiàn),是一個切實可行的方案。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的就是為了克服上述現(xiàn)有技術存在的缺陷而提供一種基于標簽傳播算法面向寄遞數(shù)據(jù)的并行化社團發(fā)現(xiàn)方法,,在構建了寄遞關系網(wǎng)絡模型基礎上,利用MapReduce分布式計算框架,提高傳統(tǒng)標簽傳播算法的擴展性和運行效率,最終實現(xiàn)準確、尚效地挖掘寄遞網(wǎng)絡中社團。
[0005]本發(fā)明的目的可以通過以下技術方案來實現(xiàn):
[0006]—種基于標簽傳播算法面向寄遞數(shù)據(jù)的并行化社團發(fā)現(xiàn)方法,包括:
[0007]步驟S1:預處理寄遞數(shù)據(jù),按照設定格式結構化為文本數(shù)據(jù);
[0008]步驟S2:綜合文本數(shù)據(jù)中節(jié)點之間寄遞往來信息,標準化節(jié)點之間有向邊的權值,最終以鄰接表形式構建成寄遞有向有權關系網(wǎng)絡模型;
[0009]步驟S3:利用改進的標簽傳播算法,運用MapReduce框架并行化挖掘寄遞網(wǎng)絡中的社團結構;
[0010]步驟S4:解析步驟S3獲取的社團結構,發(fā)現(xiàn)寄遞網(wǎng)絡中社團。
[0011]所述文本數(shù)據(jù)上傳至Hadoop 平臺的 HDFS (Hadoop Distributed File System)中存儲與處理。
[0012]所述步驟SI具體為:對于每條寄遞數(shù)據(jù),分別抽取出寄件人姓名、寄件人電話號碼、收件人姓名、收件人電話號碼,所述寄件人姓名、寄件人電話號碼、收件人姓名、收件人電話號碼對應為每行文本數(shù)據(jù)的四列信息。
[0013]所述步驟S2具體為:
[0014]201:針對每個寄件人,獲取該寄件人與其他收件人之間物流往來頻數(shù)的鄰接表,并對鄰接表進行標準化處理;
[0015]202:對任意存在物流往來的寄件人和收件人,統(tǒng)計他們分別作為寄件人時對應存在相同收件人的數(shù)量A,該數(shù)量A記為共享發(fā)送鄰居數(shù);
[0016]203:對任意存在物流往來的寄件人和收件人,統(tǒng)計他們分別作為收件人時對應存在相同寄件人的數(shù)量B,該數(shù)量B記為共享接收鄰居數(shù);
[0017]204:對任意存在物流往來的寄件人和收件人,獲取他們之間的共享發(fā)送鄰居數(shù)與共享接收鄰居數(shù)的和值,該和值作為該寄件人和收件人之間的共享鄰居數(shù),并對共享鄰居數(shù)進行標準化處理;
[0018]205:將步驟201得到的鄰接表的權值和步驟204中得到的共享鄰居數(shù)按a:1- α的比例相加后獲得同時考慮寄件頻數(shù)與共同發(fā)送鄰居數(shù)和共同接收鄰居數(shù)的有向邊權值,并更新鄰接表,其中,O < α < I ο
[0019]所述改進的標簽傳播算法采用多次迭代的方式,一次迭代過程具體為:
[0020]301:在步驟S2獲得的鄰接表的結尾加上對應寄件人節(jié)點的唯一標示ID,作為寄件人節(jié)點標簽Label,完成初始化標簽;
[0021]302:根據(jù)帶節(jié)點標簽的鄰接表輸出多個〈key,value)形式鍵值對,分為寄件人鍵值對和收件人鍵值對;
[0022]303:獲取相同key值的鍵值對,遍歷每個value,首先獲取寄件人鍵值對的value用來表示該key值的鄰接表的value,并存于變量adjacent中,其次,對于收件人鍵值對的value,統(tǒng)計不同Label下權重值之和,并根據(jù)不同Label的比重來更新該key值的節(jié)點標簽 NewLabel ;
[0023]304:將NewLabel添加到adjacent結尾處,輸出一個新的〈key, value〉形式鍵值對,并更新鄰接表的標簽,寄遞網(wǎng)絡中的社團結構與含有標簽的鄰接表相對應。
[0024]所述改進的標簽傳播算法的迭代終止條件包括:前后兩次迭代過程大于設定百分比的節(jié)點標簽不發(fā)生變化或達到設定的迭代次數(shù)。
[0025]所述設定百分比為90%。
[0026]所述設定的迭代次數(shù)為20?30次。
[0027]所述步驟S4具體為:根據(jù)步驟S3獲取的鄰接表,將相同標簽的節(jié)點視為同一社團,從而發(fā)現(xiàn)寄遞網(wǎng)絡中社團。
[0028]與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:
[0029]I)現(xiàn)有技術主要是基于單機算法挖掘社團,不適合大規(guī)模網(wǎng)絡中社團挖掘,本發(fā)明基于寄遞數(shù)據(jù)來構建寄遞網(wǎng)絡的方法,同時在寄遞網(wǎng)絡中采用并行標簽傳播算法,以準確、高效地挖掘寄遞網(wǎng)絡中社團,特別適用于大規(guī)模網(wǎng)絡的挖掘,相比于傳統(tǒng)單機算法挖掘社團,本發(fā)明所提供的方法的優(yōu)越性十分明顯。
[0030]2)在計算寄遞網(wǎng)絡邊的權值方面考慮了 3個方面的指標:1、寄遞雙方的物流往來頻數(shù);2、統(tǒng)計寄遞雙方分別作為寄件人時對應存在相同收件人的數(shù)量;3、統(tǒng)計寄遞雙方分別作為收件人時對應存在相同寄件人的數(shù)量,最后本發(fā)明綜合這3個指標計算網(wǎng)絡中所有邊的權值,從而提供挖掘精度與準確度。
[0031]3)本發(fā)明方法不需要任何輸入?yún)?shù),而且具有線性的時間復雜度,收斂速度較快,適合于大規(guī)模網(wǎng)絡中社團挖掘。
[0032]4)結合MapReduce分布式計算框架,將反應寄遞數(shù)據(jù)的文本數(shù)據(jù)上傳至Hadoop集群的HDFS中存儲與處理,提高算法的擴展性與時間效率。
【附圖說明】
[0033]圖1為本發(fā)明方法的整體流程圖;
[0034]圖2為基于寄遞數(shù)據(jù)構建寄遞關系網(wǎng)絡模型的流程圖;
[0035]圖3為采用改進的標簽傳播算法并行化挖掘社團的流程圖。
【具體實施方式】
[0036]下面結合附圖和具體實施例對本發(fā)明進行詳細說明。本實施例以本發(fā)明技術方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
[0037]如圖1所示,一種基于標簽傳播算法面向寄遞數(shù)據(jù)的并行化社團發(fā)現(xiàn)方法分為構建寄遞關系網(wǎng)絡模型階段和挖掘階段,具體如下:
[0038]步驟S1:預處理寄遞數(shù)據(jù),按照設定格式結構化為文本數(shù)據(jù),文本數(shù)據(jù)上傳至Hadoop集群的HDFS中存儲與處理。具體為:
[0039]對于每條寄遞數(shù)據(jù),分別抽取出寄件人姓名、寄件人電話號碼、收件人姓名、收件人電話號碼,寄件人姓名、寄件人電話號碼、收件人姓名、收件人電話號碼對應為每行文本數(shù)據(jù)的四列信息。
[0040]步驟S2:綜合文本數(shù)據(jù)中節(jié)點之間寄遞往來信息,標準化節(jié)點之間有向邊的權值,最終以鄰接表形式構建成寄遞有向有權關系網(wǎng)絡模型,并上傳至HDFS中。如圖2所示,具體為:
[0041]201:針對每個寄件人,獲取該寄件人與其他收件人之間物流往來頻數(shù)的鄰接表,并對鄰接表進行標準化處理。下面具體說明:
[0042]I)首先,基于MapReduce計算框架,在Map階段按行讀取步驟SI中存于HDFS且經(jīng)過標準化后的文本數(shù)據(jù),分別對寄件人和收件人使用其姓名與電話號碼的組合作為其唯一標示ID,輸出〈key, value〉形式鍵值對,其中key為寄件人ID,value為收件人ID。
[0043]2)在Reduce階段獲取相同key值下,即相同寄件人情況下,統(tǒng)計該寄件人與不同收件人物流往來頻數(shù)。最終為每個寄件人得到一個僅考慮該寄件人與其他收件人之間物流往來頻數(shù)的鄰接表。
[0044]3)其次,根據(jù)每個寄件人的鄰接表,當該寄件人發(fā)送快遞頻數(shù)大于設定頻數(shù)(本實施例中根據(jù)經(jīng)驗取500次),則可判斷該寄件人為物流中轉站或者為淘寶賣家等情況,因此需刪去該寄件人的鄰接表,同時從其他寄件人的鄰接表中刪去該寄件人節(jié)點。
[0045]4)最后,根據(jù)新產(chǎn)生的所有寄件人的鄰接表,統(tǒng)計物流往來頻數(shù)最大的寄件人與收件人,設最大往來次數(shù)為Max,利用Max來標準化所有寄件人的鄰接表:假設某個寄件人的鄰接表[SXtR1 IC1XtR2: C2...\tRk:Ck],其中\(zhòng)t為分隔符,S為Sender簡寫,表示寄件人,R為Receiver簡寫,表示收件人,C為Count簡寫,下標k為收件人和對應次數(shù)的順序編號,表示次數(shù),將與其有物流往來的收件人(&、&和1^等)的往來次數(shù)(Cp CjP (^等)除以Max,最終得到該寄件人標準化后的鄰接表,即[SVR1 = WAtR2 = W2...\tRk:Wk],其中,Wk= Ck/Max。
[0046]202:求得共享發(fā)送鄰居數(shù):對任意存在物流往來的寄件人和收件人,統(tǒng)計他們分別作為寄件人時對應存在相同收件人的數(shù)量A,該數(shù)量A記為共享發(fā)送鄰居數(shù)。下面具體說明:
[0047]I)首先,在MapReduce計算框架下,在Map階段讀取I)中每個寄件人的鄰接表[SXtR1IffAtR2Iff2...\tRk:Wk],輸出多個〈key, value)形式鍵值對:<S, +R1XtR2...\tRk> (