摘 要:由于大部分圖挖掘算法都需要利用頻繁子圖,頻繁子圖挖掘逐漸成為了數(shù)據(jù)挖掘領(lǐng)域中的熱點(diǎn)研究內(nèi)容。目前,很多高效的頻繁子圖挖掘算法已經(jīng)被提出。其中,gSpan算法是目前公認(rèn)的最好的頻繁子圖挖掘算法。然而,在化合物數(shù)據(jù)集上,還可以利用化合物的特殊結(jié)構(gòu)進(jìn)一步優(yōu)化gSpan算法的性能。文獻(xiàn)利用了化合物分子結(jié)構(gòu)的對稱性和原子類型分布的不均衡性,提出了一些新的優(yōu)化策略,進(jìn)一步改進(jìn)了gSpan的性能。鑒于gSpan算法在圖挖掘領(lǐng)域乃至整個(gè)數(shù)據(jù)挖掘領(lǐng)域的重要性,設(shè)計(jì)并實(shí)現(xiàn)gSpan算法。同時(shí),采用文獻(xiàn)[4]中的優(yōu)化策略,進(jìn)一步提高gSpan算法在化合物數(shù)據(jù)集上的運(yùn)行效率。
關(guān)鍵詞:
中圖分類號: TP311 文獻(xiàn)標(biāo)識碼: A 文章編號:2095-2163(2011)03-0055-03
Design and Implementation of A Frequent Subgraph Mining Algorithm gSpan
GUO Yulin, LIU Yong
Abstract: Since most of the graph mining algorithms are needed to make frequent subgraph,frequent subgraph mining is gradually becoming the hot spot in the field of research. At present, many efficient frequent subgraph mining algorithms have been proposed. Among them, gSpan algorithm is currently accepted as the best frequent subgraph mining algorithm. However, in the compound datasets, the performance of gSpan algorithm based on the special structure could be further optimized. The paper uses the symetry of the molecular structure of compounds and the unequilibrium of the distribution of atomic types, and puts forward some new optimization strategy, so as to further improve the performance of gSpan algorithm. Because gSpan algorithm is very vital in graph mining areas and the entire data mining field, this paper designes and implementes gSpan algorithm. Meanwhile, the paper also prepares to adopt the optimization strategy in the literature[4], further improves the gSpan algorithm operation efficiency in compound datasets.
Key words:
0 引言
由于大部分圖挖掘算法[1-3]都需要利用頻繁子圖,頻繁子圖挖掘逐漸成為了數(shù)據(jù)挖掘領(lǐng)域中的熱點(diǎn)研究內(nèi)容。目前,很多高效的頻繁子圖挖掘算法已經(jīng)被提出。其中,gSpan算法是目前公認(rèn)的最好的頻繁子圖挖掘算法。該算法利用模式增長(pattern-growth)策略,采用深度優(yōu)先方式遍歷模式搜索空間。在某個(gè)頻繁子圖p的基礎(chǔ)上,擴(kuò)展產(chǎn)生p的孩子(p的超模式) 并計(jì)算其支持度,對p的每個(gè)頻繁孩子,以深度優(yōu)先方式繼續(xù)擴(kuò)展,直到發(fā)現(xiàn)全部頻繁子圖為止。
然而,在化合物數(shù)據(jù)集上,還可以利用化合物的特殊結(jié)構(gòu)進(jìn)一步優(yōu)化gSpan算法的性能。文獻(xiàn)[4]利用了化合物分子結(jié)構(gòu)的對稱性和原子類型分布的不均衡性,提出了一些新的優(yōu)化策略,進(jìn)一步改進(jìn)了gSpan的性能。
本文內(nèi)容安排如下:第1節(jié)給出問題定義 第2節(jié)給出算法描述 第3節(jié)給出實(shí)驗(yàn)結(jié)果第4節(jié)總結(jié)全文。
1 問題定義
本節(jié)首先介紹預(yù)備知識,然后給出問題的形式化定義。
本文主要考慮連通的無向標(biāo)號簡單圖。通過簡單修改,本文的gSpan算法也適用于有向圖,無標(biāo)號圖和不連通圖。如無特別說明,本文中的圖均指連通的無向標(biāo)號圖。一個(gè)圖G定義為一個(gè)四元組G=( V,E,Σ,l ),其中,V是頂點(diǎn)集合,E?哿V×V是邊集合,Σ是標(biāo)號集合, l:V∪E→Σ是一個(gè)函數(shù), 用來對頂點(diǎn)和邊分配標(biāo)號。
定義1 (圖同構(gòu)):圖的同構(gòu)是一個(gè)雙射f: V(G)?圮V(G′)。對于圖G=V,E,ΣV,ΣE,L?妖與圖G′=V′,E′,ΣV′,ΣE′,L′?妖,若G與G′是同構(gòu)的,則滿足如下條件:
單射函數(shù)f也稱為G在G′中的一個(gè)嵌入。
如果存在一個(gè)從G到G′的子圖同構(gòu),則G稱為G′的子圖, G′稱為G的超圖,記為G?哿G′。如果G?哿G′且G≠G′,則G稱為G′的真子圖, G′稱為G的真超圖,記為G?奐G′。子圖同構(gòu)測試已被證明是一個(gè)NP-完全問題.如果G?哿G′,也稱G′包含G。
給定一個(gè)圖集合D=G1,G2,…,Gn?妖和一個(gè)圖模式P, P在D中的支持集定義為D中包含P的圖集合,記為Dsupp(P)=Gi|P?哿Gi, Gi∈D?妖。|Dsupp(P)|稱為P在D中的支持度,記為supp(PD)。|Dsupp(P)|/|D|稱為P在D中的相對支持度。支持度度量具有反單調(diào)性質(zhì):如果P1?哿P2,則supp(P1D)≥supp(P2D)。對于用戶給定的一個(gè)最小支持度閾值min_sup,如果supp(PD)≥min_sup,稱P在D中是頻繁的。D中所有頻繁圖模式集合記為FS=P| supp(PD)≥min_sup?妖。
本文要解決的頻繁子圖挖掘問題可描述為:給定一個(gè)圖數(shù)據(jù)庫D,一個(gè)用戶指定的最小支持度閾值min_sup,挖掘該圖數(shù)據(jù)庫上的所有頻繁子圖。
要使用gSpan算法完成該任務(wù),需要實(shí)現(xiàn)gSpan算法中的如下關(guān)鍵技術(shù):
(1)為圖模式設(shè)計(jì)一種唯一性編碼方案,使得每個(gè)圖模式都對應(yīng)唯一一個(gè)的編碼
(2)為高效遍歷圖模式搜索空間,設(shè)計(jì)了一種深度優(yōu)先枚舉框架
(3)基于支持度的反單調(diào)性質(zhì),使用分支限界算法對圖模式搜索空間進(jìn)行剪枝,以提高挖掘效率
(4)計(jì)算圖模式支持度時(shí),設(shè)計(jì)一些優(yōu)化策略,在某些條件下,使用嵌入鏈表方式可以明顯改善挖掘效率
(5)利用化合物的特殊結(jié)構(gòu)(分子化合物中存在很多對稱結(jié)構(gòu),分子化合物中原子類型分布不均衡)來設(shè)計(jì)gSpan算法的優(yōu)化策略。
2 算法
本算法通過main函數(shù)傳遞參數(shù),參數(shù)包括-m i、-p、-t、minSup、inputfile和outputfile等。
-m i:在挖掘子圖過程中,只針對規(guī)模小于或等于i的頻繁圖進(jìn)行挖掘。
-p:只保留線性結(jié)構(gòu)。
-t:只保留樹形結(jié)構(gòu)。
minSup:指定最小支持度的參數(shù),為整形變量。
inputfile:輸入數(shù)據(jù)文件名。
outputfile:輸出數(shù)據(jù)文件名。
本算法首先使用preprocessDB函數(shù)進(jìn)行數(shù)據(jù)導(dǎo)入處理,并創(chuàng)建與存儲(chǔ)相關(guān)的數(shù)據(jù)結(jié)構(gòu)。此后算法采用遞歸調(diào)用,進(jìn)行深度優(yōu)先挖掘。
深度優(yōu)先挖掘是算法的核心,主要包含以下三個(gè)函數(shù)和子程序:GraphSet_Projection(GS,S),Subgraph_Ming(GS,S,s),Enumerate(s)。
函數(shù):GraphSet_Projection(GS,S)
(1)從集合GS(graphSet)中讀圖數(shù)據(jù),對點(diǎn)與邊按頻度進(jìn)行排序
(2)移除不頻繁的點(diǎn)與邊
(3)移除后,余下的頻繁的點(diǎn)與邊重新標(biāo)號,進(jìn)行降序排列
(4)把集合GS中的頻繁一邊圖存于集合S1中
(5)按DFS詞典序,對集合S1進(jìn)行排序
(6)把集合S1中元素存于集合S中
(7)遍歷集合S1中單邊e
(8)用邊e初始化s,遍歷集合GS中的g,凡是包含邊e的圖g,賦予s的GS中(只記錄g的ID)
(9) Subgraph_Mining(GS,S,s)
(10) 在集合GS中刪除邊e
(11)如果集合GS中g(graph)的個(gè)數(shù)小于minSup
(12) 停止
子程序1:Subgraph_Mining(GS,S,s)
(1)如果s不是min(s)
(2)返回;
(3)把集合s加入集合S中;
(4)添加一條邊,生成集合s的孩子,即超模式;
(5)Enumerate(s);
(6)依次遍歷集合s的孩子c
(7) 如果c的支持度大于等于minSup
(8)就把c賦予s中;
(9)Subgraph_Mining(GS,S,s)
子程序2:Enumerate(s)
(1)依次遍歷s的所有超圖g
(2) 在圖g中枚舉s的擴(kuò)展,即孩子;
(3) 依次遍歷s的孩子c,同時(shí)c是圖g的子圖
把圖g作為c的超圖,鏈入c的超圖鏈表中;
(4) 如果圖g覆蓋了s的所有孩子,break;
細(xì)節(jié)流程見圖1。
3 實(shí)驗(yàn)
程序在VC6.0[5]環(huán)境下開發(fā)。運(yùn)行環(huán)境如下:Microsoft Windows XP Professional 版本2002 Service Pack 3,AMD Athlon(tm)64 X2 Dual Core Processor 4200+ 2.20 GHz,1.00GB的內(nèi)存,80GB的硬盤。實(shí)驗(yàn)結(jié)果顯示:隨著支持度的加大,頻繁子圖數(shù)目在減小,最大的頻繁子圖規(guī)模在減小。如圖2所示。
以下關(guān)于Chemical_340,內(nèi)含340個(gè)連通圖,每個(gè)圖規(guī)模不一,以下為minSup=15的測試數(shù)據(jù)。
4 結(jié)束語
本文研究了頻繁子圖挖掘問題,設(shè)計(jì)并實(shí)現(xiàn)了gSpan算法進(jìn)行頻繁子圖挖掘。實(shí)驗(yàn)結(jié)果表明:gSpan算法是一種高效的頻繁子圖挖掘算法。
參考文獻(xiàn):
[1] YAN Xifeng,HAN Jiawei. gSpan:Graph-Based substructure p-
attern mining[R]. Madrid:Department of Computer Science,IC-
DM,2002.
[2] HAN Jiawei,PEI Jian,YIN Yiwen.Mining frequent patterns without
candidate generation[R] . Canada :School of Computing Science, S-
imon Fraser University, SIGMOD,2000.
[3] KURAMOCHI M,KARYPIS G. An efficient algorithm for dis-
covering frequent subgraphs[R]. USA:Department of Computer
Science/Army HPC Research Center,University of Minnesota,
In IEEE Computer Society,2002.
[4] AGRAWAL R,SRIKANT R. Fast algorithms for mining associ-
ation rules[R]. California :IBM Almaden Research Center,VLDB,
1994.
[5] 楊永國. Visual C++ 6.0開發(fā)技巧與實(shí)例教程[M]. 北京:清華大學(xué)
出版社,2004:23-45.
[6] JAHN K,KRAMER S. Optimizing gSpan for molecular datasets
[R]. Germany:Technische Universitt München, Ludwig-Maxim-
ilians-Universitt München.
[7] BORGELT C,MEINL T,BERTHOLD M. Advanced pruning st-
rategies to speed up closed molecular fragments[R]. USA:Proc.
IEEE Conf.on Systems,Man and Cybernetics,2004.
[8] HAN Jiawei,KAMBER M. Data mining concepts and techniqu-
es[M]. Second Edition. 北京:機(jī)械工業(yè)出版社,2006:226-233,
535-554.
[9] HAN Jiawei,KAMBER M著. 數(shù)據(jù)挖掘概念與技術(shù)[M]. 范明,
孟小峰,譯. 北京:機(jī)械工業(yè)出版社,2007:146-149,351-361.
[10] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學(xué)出版社,
2005:46-72.
[11] 許榮斌,謝瑩,吳建國. 基于化合物庫測試的gSpan算法[R]. 合
肥:安徽大學(xué),計(jì)算智能與信號處理教育部重點(diǎn)實(shí)驗(yàn)室,2007.