李偉亮 馬傳香 彭茗菁
摘 要:關(guān)聯(lián)規(guī)則算法中FP-Growth算法雖不產(chǎn)生候選集,但由于算法高度依賴于內(nèi)存空間,阻礙了算法在大數(shù)據(jù)領(lǐng)域的發(fā)揮,因此,改進了經(jīng)典的FP-Growth算法,首先創(chuàng)建支持度計數(shù)表,避免了算法對條件模式基的第一次遍歷,減少了對數(shù)據(jù)庫的掃描次數(shù);其次利用剪枝策略刪去了大量沉余的非頻繁項集;最后將算法并行化,利用 Hadoop平臺優(yōu)勢極大提高數(shù)據(jù)處理的效率,同時解決了算法占用內(nèi)存的瓶頸問題。實驗結(jié)果表明,改進型FP-Growth算法挖掘和預測軌跡的效率明顯高于經(jīng)典算法。
關(guān)鍵詞:改進型FP-Growth;Map-Reduce;Hadoop;軌跡預測
中圖分類號:TP391 文獻標志碼:A 文章編號:2095-1302(2014)10-00-03
0 引 言
隨著我國經(jīng)濟社會的穩(wěn)步推進,各大城市的發(fā)展取得了令人矚目的成就。與此同時,大城市的機動車保有量與日俱增,交通擁擠的問題日益嚴重。盡管市政和交通管理部門投入了大量的人力、物力和財力建設(shè),但城市交通擁堵現(xiàn)象仍然不能有效解決。要做到合理分布交通流,使單位時間的道路通行量最大且使用效率高,就需要做到合理規(guī)劃和預測路網(wǎng)中車輛軌跡和車輛路徑。本文提出基于改進FP-Growth算法的車輛預測方法,利用Map/Reduce編程進行大數(shù)據(jù)的并行計算,提高了算法效率,解決了交通管理部門監(jiān)測當前時間車流量信息的目的,為交通管理部門和相關(guān)車輛及時發(fā)布預警信息提供了決策支持。
1 FP-Growth算法概述
J.W.Han[1,2]等人克服了Apriori算法產(chǎn)生基數(shù)龐大的候選集和在計算支持度時多次掃描數(shù)據(jù)庫的弱點,提出FP-Growth算法。其思想是通過掃描2次數(shù)據(jù)庫構(gòu)造FP-Tree和Header Table,從而得到用于頻繁項集挖掘的壓縮的數(shù)據(jù)庫映射,然后對每個頻繁項構(gòu)造其條件FP-Tree進行頻繁項集的挖掘,最終得到頻繁項集。與Apriori算法比較FP-Growth算法不產(chǎn)生候選集,采用FP-Tree壓縮所有能夠提供頻繁項信息的項集,節(jié)省了時間和空間的消耗,相對Apriori算法的執(zhí)行速度和內(nèi)存消耗已經(jīng)有了一個數(shù)量級的改善。
1.1 FP-Growth改進
由于FP-Growth是基于內(nèi)存駐留的算法,在頻繁項挖掘時遞歸生成大量條件FP-Tree,當數(shù)據(jù)庫達到一定規(guī)模時,基于內(nèi)存的FP-Tree已經(jīng)無法有效應對,極容易造成內(nèi)存溢出,這正是FP-Growth算法的瓶頸所在。因而,F(xiàn)P-Growth算法在挖掘大數(shù)據(jù)問題上有較大擴展空間。
針對當前交通的大數(shù)據(jù)背景,傳統(tǒng)FP-Growth算法和以上改進算法的優(yōu)勢不足以處理大規(guī)模交通數(shù)據(jù)問題。因此,本文就針對交通大數(shù)據(jù)給出FP-Growth算法改進的解決方案:
(1)建立支持度計數(shù)表。在第一次遍歷事務集合T的同時創(chuàng)建二維向量,記錄每個事務中各個項兩兩組合出現(xiàn)的支持度計數(shù);利用遞歸方式創(chuàng)建后綴模式S( S ≠{Null})條件下的條件FP子樹,此時,第一次遍歷條件模式基得到支持度計數(shù)列表,第二次遍歷條件模式基插入樹節(jié)點從而創(chuàng)建FP樹;遍歷條件模式基,創(chuàng)建FP子樹的同時創(chuàng)建新的支持度計數(shù)二維向量表。
(2)非頻繁項的剪枝策略。假設(shè)項集k在某一個路徑上是非頻繁的;若項集k在 FP-tree 中存在前綴路徑集合A與集合B,并且滿足集合B包含于集合A,那么集合A中的項集k就可以被剪枝與短路徑集合B合并。
1.2 Map-Reduce 并行處理
Map-Reduce最初是由Google提出的,它是一種可以處理海量數(shù)據(jù)的并行編程模型。該模型把所有的數(shù)據(jù)問題抽象成Map和Reduce兩個函數(shù)。以可靠的并行方式處理大規(guī)模數(shù)據(jù)集,其中Map函數(shù)把問題進行分解,Reduce函數(shù)負責把分解的任務進行規(guī)約處理。
利用Map-Reduce編程模型,經(jīng)統(tǒng)計頻繁1-項和遞歸挖掘頻繁項集的兩次并行處理,對改進后的FR-Growth算法步驟并行化。其描述為:首先,對頻繁1-項集的頻率統(tǒng)計;再利用頻繁1-項集的頻率統(tǒng)計結(jié)果建立一個哈希表,按照哈希表對數(shù)據(jù)進行分組,把數(shù)據(jù)分成了若干個部分;然后對分解后的數(shù)據(jù)進行關(guān)聯(lián)規(guī)則挖掘;最后,匯總最終的頻繁模式。
圖1 Map-Reduce任務處理流程
圖2 基于Map-Reduce的頻繁軌跡挖掘
2 基于模式匹配的軌跡預測
根據(jù)基于Map/Reduce的頻繁軌跡挖掘得到的序列模式進行軌跡預測。通過Map/Reduce并行計算獲得頻繁模式集合后,就可以計算出與查詢軌跡最為相似的頻繁模式,用該模式就可以預測軌跡的未來走向。
對于移動對象數(shù)據(jù)庫D,存儲的是海量移動對象在各時間采樣點的位置信息。位置信息在時間上的有序集合為軌跡,用D={T1,T2,…,Tn)表示,則|D|表示數(shù)據(jù)庫中包含的軌跡數(shù)量。在三維X×Y×T空間里,軌跡T是移動對象在空間內(nèi)位置信息的有序組合,可以表示為T=(t1,x1,y1),(t2,x2,y2),…,(tn,xn,yn)。其中ti表示時間戳,(xi,yi)表示移動對象的空間位置坐標。
軌跡匹配,是從頻繁模式中找出與查詢軌跡片段匹配權(quán)重最高的模式。假設(shè)用戶的查詢軌跡片段為Q=
如查詢軌跡片段Q=,頻繁模式為P,Q和P的公共元素有
3 算法與實驗
本文實驗環(huán)境采用4臺PC機做分布式環(huán)境。操作系統(tǒng)為Ubuntu 14.04 -32bit,Hadoop 2.4.0,CPU為Inter Core i7處理器,主頻2.1 GHz,單機內(nèi)存為512 MB。
3.1 頻繁1-項統(tǒng)計
其Map-Reduce算法偽代碼如下:
map(key,value){ //value為事務Ti
for each ki∈Ti do
output
end
}
reduce(key,value){//key為一個1-項集,value為其支持數(shù)列表[1,1,…,1]
C=0;
for each v in value do
C+=1;
end
ifC/|D|minsup then
output
end
}
3.2 FP-Growth并行化
其Map-Reduce算法偽代碼如下:
map(key,value){ //value為事務Ti
insert_build_fptree(LFPTree,Ti);//更新局部FP樹LFPTree
}
cleanup(){
LocalFPGrowth(LFPTree,LFPSet);//將局部頻繁項目集及其支持數(shù)放入LFPSet中
for each lfp∈LFPSet do
output
end
}
reduce(key,value){//key為項目集,value為其支持數(shù)列表
C=0;
for each vi in value do
C+=vi;
end
if C/|D|≥minsup then
output
else if
write key into a distribute file;//若暫不確定是否全局頻繁,則將其寫入分布式文件
end
}
4 結(jié) 語
本文結(jié)合歷史車輛軌跡數(shù)據(jù)利用改進型的關(guān)聯(lián)規(guī)則算法FP-Growth挖掘出軌跡模式索引,并提出基于Map/Reduce算法的軌跡預測方案。在路網(wǎng)中利用索引樹對車輛未來軌跡進行預測,預判出車流趨勢,為交通管理部門及時做出交通疏導方案的決策提供了支持。
參考文獻
[1] J.W.Han, JianPen, Yin YiWen.Mining frequent patterns without candidate generation[C].In the proceedingsof ACM SIGMOD International Conference on Management of Data,Dallas, Texas:2000:1-12.
[2] J. G.LEE, J. W.HAN, WHANG K. Y. Trajectory clustering: a partition-and-group framework [A]. ICMD2007:Proceedings of the ACM SIGMOD International Conference on Management ofData[C]. Beijing, China, 2007, 593-604.
[3]袁冠,夏士雄,張磊. 基于結(jié)構(gòu)相似度的軌跡聚類算法[J]. 通信學報.2011(9):103-110.
[4]趙越,劉衍珩,余雪崗,等. 基于模式挖掘與匹配的移動軌跡預測方法[J]. 吉林大學學報. 2008,38(5):1125-1130.
[5]章志剛,吉根林. 一種基于FP-Growth的頻繁項目集并行化挖掘算法[J]. 計算機工程與應用2014,50(2):107-110.
[6] CHEN L., LV M. Q., CHEN G. C. A system for destination and future route prediction based on trajectory mining[J]. Journal of Pervasive and Mobile Computing, 2010,6(6):657-676.
[7] ZhouLe, LiJunjie, HuangZhexue, FengShenzhong. Balanced Parallel FP-Growth withMapReduce[J]. Bulletin of advanced technology reseach,2011(6):47-50.
3 算法與實驗
本文實驗環(huán)境采用4臺PC機做分布式環(huán)境。操作系統(tǒng)為Ubuntu 14.04 -32bit,Hadoop 2.4.0,CPU為Inter Core i7處理器,主頻2.1 GHz,單機內(nèi)存為512 MB。
3.1 頻繁1-項統(tǒng)計
其Map-Reduce算法偽代碼如下:
map(key,value){ //value為事務Ti
for each ki∈Ti do
output
end
}
reduce(key,value){//key為一個1-項集,value為其支持數(shù)列表[1,1,…,1]
C=0;
for each v in value do
C+=1;
end
ifC/|D|minsup then
output
end
}
3.2 FP-Growth并行化
其Map-Reduce算法偽代碼如下:
map(key,value){ //value為事務Ti
insert_build_fptree(LFPTree,Ti);//更新局部FP樹LFPTree
}
cleanup(){
LocalFPGrowth(LFPTree,LFPSet);//將局部頻繁項目集及其支持數(shù)放入LFPSet中
for each lfp∈LFPSet do
output
end
}
reduce(key,value){//key為項目集,value為其支持數(shù)列表
C=0;
for each vi in value do
C+=vi;
end
if C/|D|≥minsup then
output
else if
write key into a distribute file;//若暫不確定是否全局頻繁,則將其寫入分布式文件
end
}
4 結(jié) 語
本文結(jié)合歷史車輛軌跡數(shù)據(jù)利用改進型的關(guān)聯(lián)規(guī)則算法FP-Growth挖掘出軌跡模式索引,并提出基于Map/Reduce算法的軌跡預測方案。在路網(wǎng)中利用索引樹對車輛未來軌跡進行預測,預判出車流趨勢,為交通管理部門及時做出交通疏導方案的決策提供了支持。
參考文獻
[1] J.W.Han, JianPen, Yin YiWen.Mining frequent patterns without candidate generation[C].In the proceedingsof ACM SIGMOD International Conference on Management of Data,Dallas, Texas:2000:1-12.
[2] J. G.LEE, J. W.HAN, WHANG K. Y. Trajectory clustering: a partition-and-group framework [A]. ICMD2007:Proceedings of the ACM SIGMOD International Conference on Management ofData[C]. Beijing, China, 2007, 593-604.
[3]袁冠,夏士雄,張磊. 基于結(jié)構(gòu)相似度的軌跡聚類算法[J]. 通信學報.2011(9):103-110.
[4]趙越,劉衍珩,余雪崗,等. 基于模式挖掘與匹配的移動軌跡預測方法[J]. 吉林大學學報. 2008,38(5):1125-1130.
[5]章志剛,吉根林. 一種基于FP-Growth的頻繁項目集并行化挖掘算法[J]. 計算機工程與應用2014,50(2):107-110.
[6] CHEN L., LV M. Q., CHEN G. C. A system for destination and future route prediction based on trajectory mining[J]. Journal of Pervasive and Mobile Computing, 2010,6(6):657-676.
[7] ZhouLe, LiJunjie, HuangZhexue, FengShenzhong. Balanced Parallel FP-Growth withMapReduce[J]. Bulletin of advanced technology reseach,2011(6):47-50.
3 算法與實驗
本文實驗環(huán)境采用4臺PC機做分布式環(huán)境。操作系統(tǒng)為Ubuntu 14.04 -32bit,Hadoop 2.4.0,CPU為Inter Core i7處理器,主頻2.1 GHz,單機內(nèi)存為512 MB。
3.1 頻繁1-項統(tǒng)計
其Map-Reduce算法偽代碼如下:
map(key,value){ //value為事務Ti
for each ki∈Ti do
output
end
}
reduce(key,value){//key為一個1-項集,value為其支持數(shù)列表[1,1,…,1]
C=0;
for each v in value do
C+=1;
end
ifC/|D|minsup then
output
end
}
3.2 FP-Growth并行化
其Map-Reduce算法偽代碼如下:
map(key,value){ //value為事務Ti
insert_build_fptree(LFPTree,Ti);//更新局部FP樹LFPTree
}
cleanup(){
LocalFPGrowth(LFPTree,LFPSet);//將局部頻繁項目集及其支持數(shù)放入LFPSet中
for each lfp∈LFPSet do
output
end
}
reduce(key,value){//key為項目集,value為其支持數(shù)列表
C=0;
for each vi in value do
C+=vi;
end
if C/|D|≥minsup then
output
else if
write key into a distribute file;//若暫不確定是否全局頻繁,則將其寫入分布式文件
end
}
4 結(jié) 語
本文結(jié)合歷史車輛軌跡數(shù)據(jù)利用改進型的關(guān)聯(lián)規(guī)則算法FP-Growth挖掘出軌跡模式索引,并提出基于Map/Reduce算法的軌跡預測方案。在路網(wǎng)中利用索引樹對車輛未來軌跡進行預測,預判出車流趨勢,為交通管理部門及時做出交通疏導方案的決策提供了支持。
參考文獻
[1] J.W.Han, JianPen, Yin YiWen.Mining frequent patterns without candidate generation[C].In the proceedingsof ACM SIGMOD International Conference on Management of Data,Dallas, Texas:2000:1-12.
[2] J. G.LEE, J. W.HAN, WHANG K. Y. Trajectory clustering: a partition-and-group framework [A]. ICMD2007:Proceedings of the ACM SIGMOD International Conference on Management ofData[C]. Beijing, China, 2007, 593-604.
[3]袁冠,夏士雄,張磊. 基于結(jié)構(gòu)相似度的軌跡聚類算法[J]. 通信學報.2011(9):103-110.
[4]趙越,劉衍珩,余雪崗,等. 基于模式挖掘與匹配的移動軌跡預測方法[J]. 吉林大學學報. 2008,38(5):1125-1130.
[5]章志剛,吉根林. 一種基于FP-Growth的頻繁項目集并行化挖掘算法[J]. 計算機工程與應用2014,50(2):107-110.
[6] CHEN L., LV M. Q., CHEN G. C. A system for destination and future route prediction based on trajectory mining[J]. Journal of Pervasive and Mobile Computing, 2010,6(6):657-676.
[7] ZhouLe, LiJunjie, HuangZhexue, FengShenzhong. Balanced Parallel FP-Growth withMapReduce[J]. Bulletin of advanced technology reseach,2011(6):47-50.