《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于MapReduce的頻繁閉項集挖掘算法改進
基于MapReduce的頻繁閉項集挖掘算法改進
2015年微型機與應用第24期
付婷婷1,楊世平1,2
(1.貴州大學 計算機科學與技術學院,貴州 貴陽 550025; 2.貴州大學 明德學院,貴州 貴陽 550004)
摘要: 挖掘頻繁閉項集(CFI)在許多實際應用中起著重要的作用。傳統的數據挖掘算法中常用FP增長算法和Apriori算法來挖掘頻繁項集。然而,內存需求和計算成本成為CFI挖掘算法的瓶頸,尤其是在從大型數據集中挖掘頻繁閉項集時,是一個重要和具有挑戰性的問題。針對上述問題,提出一種基于云計算的MapReduce框架的并行AFOPT-close算法,使MapReduce可廣泛地用于處理大型數據。此外,用于檢查頻繁項集是否為完全閉的有效并行算法也要求MapReduce平臺進一步完善其性能。
Abstract:
Key words :

  摘  要: 挖掘頻繁閉項集(CFI)在許多實際應用中起著重要的作用。傳統的數據挖掘算法中常用FP增長算法和Apriori算法來挖掘頻繁項集。然而,內存需求和計算成本成為CFI挖掘算法的瓶頸,尤其是在從大型數據集中挖掘頻繁閉項集時,是一個重要和具有挑戰性的問題。針對上述問題,提出一種基于云計算的MapReduce框架的并行AFOPT-close算法,使MapReduce可廣泛地用于處理大型數據。此外,用于檢查頻繁項集是否為完全閉的有效并行算法也要求MapReduce平臺進一步完善其性能。

  關鍵詞: MapReduce;頻繁閉項集;FP增長算法

0 引言

  頻繁閉項集挖掘(Closed Frequent Itemset,CFI)在1999年由Pasquier等人提出[1]。作為一種代替傳統頻繁項集挖掘(Frequent Itemset Mining,FIM)的新算法,CFI挖掘的優點在于在相同的頻繁項集挖掘效率下大大降低了冗余規則并且增加了挖掘的效率和有效性。自CFI出現以來一直被廣泛地研究,現有的CFI挖掘算法可分為兩類:候選項集生成和檢測方法[1]和模式增長方式[2-4]。

  這些算法在處理小數據集或者支持度閾值較高時有良好的性能,但是當處理大數據集或者支持度閾值變小時內存運行開銷將大幅度增加。一些早期的工作重點在于使用PC集群運行算法來加快挖掘速度,這樣可以提高挖掘性能,但是也對諸如負載平衡、數據分區、通信成本最小化、因通信節點失效引起的錯誤等問題提出了新的挑戰。

  為了克服上述缺點,設計了MapReduce框架來支持云計算分布式計算的計算模式,對于大型數據集而言這是一個進行并行數據挖掘的有效平臺。為了能更好地利用MapReduce在CFI挖掘中的優勢,本文基于MapReduce設計并實現了一個并行算法[4],這種算法是一種類似于FP增長算法的分治算法,能夠有效地挖掘頻繁閉項集。此外,也提出了一種檢查一個頻繁項集是否是完全閉的有效并行化方法,該方法能夠過濾掉冗余的頻繁項集。

1 頻繁項集挖掘改進算法

  在現有的研究中[3,5]已經設計出能夠在內存共享情況下的多線程的FP增長算法,但當面臨大規模數據集時這些方法將遇到內存需求嚴重不足的問題。一些研究工作也致力于解決更多細節問題,如通信開銷最小化,內存的利用率最大化等[6-8]。例如WHANG K Y等人提出了一種在無共享環境下FP增長算法并行執行的方法,該算法可以實現良好的可擴展性,但是也存在同樣的問題。隨著云計算的發展,MapReduce平臺能夠對存儲在大型計算機集群上的龐大數據進行分布式處理,具有良好的可擴展性和魯棒容錯性。因此提出了許多基于MapReduce的頻繁項集挖掘改進算法。例如李浩源等人基于MapReduce提出了一種并行的FP增長算法PFP[9],該算法將整個挖掘任務分割成若干獨立的并行子任務,并實現了擬線性加速比。除了可擴展性,PFP還讓設計基于MapReduce的模式增長方式成為可能。在以前的研究中,也有對基于MapReduce的閉頻繁項集算法的相關討論和實現[10],主要通過以下4個步驟來完成該算法,其中3個步驟是MapReduce操作。

  (1)并行計算。統計數據庫中每個項目的支持度。

  (2)構建全局的F-List(鏈式數據結構)。把項目按出現頻率遞減的順序分類并排除支持度小于最小支持度閾值的項目(用ξ表示)。

  (3)并行挖掘頻繁閉項集。并行挖掘局部頻繁閉項集。

  (4)并行過濾冗余項集。過濾局部閉而非全局閉的頻繁項集。

001.jpg

  通過上面4個步驟,能夠準確地挖掘頻繁閉項集。如圖1中的一個簡單例子,左邊部分是原始事務表,右邊部分給出通過步驟(1)~(4)挖掘得到的CFI,其中ξ=3。右邊部分每個項集的最后一項為支持度閾值。顯然,這存在一些局部閉而非全局閉的冗余項集,例如{f m 4},{f p c 3},{f p 3}。

002.jpg

  在第(4)步中使用了并行的方法來過濾冗余項集。如圖2所示,首先,每個mapper函數從CFI中讀入一個項集,然后輸出n次,n為項集的長度,Key為在項集中出現的項目。然后,每個reducer函數接收相應的值并且將項集按他們的長度遞減分類,這樣做是為了避免超集的檢測,接下來并行地過濾冗余項集。最后,該項集的Key為最終保存的項。這種方法雖然可行,但是也導致了嚴重的通信開銷和計算成本。以頻繁項集{f p c b 3}為例,3為該項集的支持度閾值。該方法需要發送這個項集4次:分別是{f:f p c b 3}、{p:f p c b 3}、{ c:f p c b 3}、{ b:f p c b 3}。顯然,這4個項集將會按不同的Key值被發送到reducer函數4次。如果ξ足夠小,將可能有許多很長的頻繁項集被反復地發送到reducer函數。因此,這種方法的總體開銷會非常高。為了解決這個問題,本文提出了一種高效的并行CFI挖掘算法,該算法也采用了一種新穎的冗余項集過濾方法來降低通信開銷和計算成本。

2 并行AFOPT-close算法

  2.1 算法的定義

  在本節中,提出了一種有效的冗余項集過濾方法,即并行AFOPT-close算法。如上所述,直接基于MapReduce采用并行化的方法挖掘頻繁閉項集會導致一些項集可能局部閉而非全局閉的問題。在本節中,將對局部頻繁閉項集和全局頻繁閉項集分別進行定義。

  定義1 局部頻繁閉項集

  如果頻繁項集X在步驟(3)中的reducer中是閉的,那么頻繁項集X為局部頻繁閉項集,用L表示局部項集。

  定義2 全局頻繁閉項集

  如果頻繁項集X對于所有局部頻繁閉項集都是閉的,那么頻繁項集X為全局頻繁閉項集。用G表示全局項集。

  性質:假設存在X∈L,如果X對于所有的項集{Y|Y∈L and supp(X)=supp(Y)}都是閉的,那么X∈G。

  定義3 冗余項集

  當且僅當頻繁項集X∈L且X?埸G,那么頻繁項集X為冗余項集,用R表示冗余。

  2.2 高效冗余項集過濾

  在現有的研究中,提出了一種基本方法來過濾冗余項集,該方法因計算成本和通信開銷太高而很費時。本文基于2.1節中的定義提出了一種新的方法來解決這個問題。當然,可以通過選出具有相同支持度的全局閉頻繁項集而輕松地實現一個高效冗余過濾算法。因此,把一個項集的支持度作為一個項集的關鍵,具有相同支持度的項集會被發送到同一個reducer函數。將在下面的算法1中給出這種方法的簡要代碼,該方法的開始3步與參考文獻[10]中提出的算法描述的一樣(Suppose X∈L)。

003.jpg

  算法1的處理過程如下:首先,每個mapper函數一行一行地從第(3)步中讀取輸出結果并且輸出<key,value>對和<supp(X),X>。這樣,具有相同支持度的項集會被發送到相同的reducer函數中并壓縮成一棵樹。然后,冗余項集會被并行地過濾掉。如圖1所示,只需要把每個項集發送到局部頻繁閉項集中一次(如圖1的左半部分),而已有的方法[10]需要發送每個項集至少3次,如圖3所示。對于具有n個項集的數據庫,每個項集的長度是{m1,m2,…,mn}。在傳統方法[10]中,項集需要發送m1+m2+…+mn次,也就是說,該方法約節約了(m1+m2+…+mn)/n(即項集的平均長度)倍的通信成本。

  算法1 高效冗余項集過濾

  Procedure:Map(key,value=supp(X)+X)

  for each value do

  output(supp(X),X);

  end for

  end Procedure

  Procedure:Reduce(key,Iterable values)

  Define and initialize a tree:r;

  Sort the itemsets by their lengths in descending order;

  for each itemset in values do

  if itemset is closed in r then

  Insert the itemset into r;

  end if

  end for

  for each itemset in r do

  output(key,itemset);

  end for

  end Procedure

3 性能仿真與結果分析

  為了驗證該方法的效率和有效性,將在兩個下載的真實的數據庫connect和webdocs中做實驗。實驗在6臺裝有Hadoop0.21.0的計算機組成的計算機群上進行,計算機配置為Intel 4核處理器,4 GB內存和500 GB硬盤,裝有Ubuntu10.10。其中一個節點被設為主節點,負責安排執行不同節點之間的任務;其他節點負責運行。算法用Java實現,JDK版本為openjdk-6-jdk。

004.jpg

  圖4顯示了在webdocs數據庫上實驗的結果。當ξ=650 000時,該算法擁有最大的斜率值。因為當ξ越大,對于在第(3)步中的每個reducer函數而言,本地數據庫越小,所以在第(3)步和第(4)步中耗費的時間越短,而在第(1)步和第(2)步中消耗的時間依然保持不變。

005.jpg

  圖5顯示了在connect數據庫上實驗的結果。由于該數據庫比較小,速度上的提高不如圖4的明顯。從圖5可以看出,用4臺電腦比用5臺電腦更能提高速度。原因在于對于每個節點而言,數據集太小,導致通信成本遠高于計算成本。實驗結果表明,該算法對于大規模的數據集擁有良好的可擴展性,對于小規模數據集則不然。

006.jpg

  對上述新冗余過濾算法和傳統算法[10]在項集發送次數上作對比,結果如表1所示。例如數據集connect,如果不適用新的冗余過濾算法,如果數據集過大勢必使計算成本和通信開銷變得很高。根據表1,顯然當ξ=24 000時,傳統算法[10]與上述算法在項集發送次數的對比中可以看出新的冗余過濾算法的優越性。但是,該方法在webdocs數據庫上卻沒有明顯優勢,原因在于在第(3)步中產生的項集的平均長度過短。由此可見,新算法對于長項集而言比短項集具有更高的效率。

007.jpg

  對上述算法與傳統算法[10]作運行時間上的對比,如表2所示。實驗在5臺負責運行的計算機組成的計算機群上進行,用兩個相同的數據集但是閾值不同。從表2可以看出,由于局部閉頻繁項集比源數據集要大而且項集自身的平均長度也很長,因此上述算法對于connect數據庫而言更高效。綜上所述,該算法的運行速度更快。但是對于webdocs,當ξ取350 000、500 000和650 000時該算法沒有優勢,主要是由于第(3)步輸出的結果太小。然而當ξ=200 000時,該算法比傳統算法快得多,這是因為第(3)步的輸出結果足夠大并且具有更多長項集。

4 結論

  本文回顧了頻繁閉項集挖掘現存的問題,并且提出了一種新的過濾局部閉而非全局閉頻繁項集的方法。實驗結果顯示,該算法在面對大規模數據集時擁有很高的可擴展性。當局部閉頻繁項集很大,尤其是對于一些閾值非常小或者項集過長的挖掘中,通信開銷將嚴重影響算法性能。而本文所提方法能很好地解決這個問題。今后,將繼續改進該算法,使之有更高的效率和更廣的使用面。

參考文獻

  [1] 廖寶魁,孫雋楓.基于MapReduce的增量數據挖掘研究[J].微型機與應用,2014,33(1):67-70.

  [2] Wang Jianyong, Han Jiawei, Pei Jian. CLOSET+:searching for the best strategies for mining frequent closed itemsets[C]. Proceedings of the ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, ACM, 2003:236-245.

  [3] FELDMAN R, DAGAN I. Knowledge discovery in textual databases(KDT)[C]. Proceedings of 1st International Conference on Knowledge Discovery and Data Mining, Montreal,Canada, 1995:112-117.

  [4] ZANE O, EL-HAJJ M, LU P. Fast parallel association rule mining without candidacy generation[C]. Proceedings of IEEE International Conference on Data Mining, ICDM 2001, 2001:665-668.

  [5] Liu Li, Li E, Zhang Yimin, et al. Optimization of frequent itemset mining on multiple-core processor[C]. Proceedings of the 33rd International Conference on Very Large Data Bases, VLDB Endowment, 2007:1275-1285.

  [6] MADRIA K, BHOWMICK S. Research issue in web data mining[C]. First International Proceedings of Data Warehousing and Knowledge Discovery, 1999:303-312.

  [7] PRAMUDIONO I, KITSUREGAWA M. Parallel fp-growth on pc cluster[J]. Advances in Knowledge Discovery and Data Mining, 2003, 2637:467-473.

  [8] BUEHRER G, PARTHASARATHY S, TATIKONDA S, et al. Toward terabyte pattern mining: an architecture conscious solution[C]. Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, ACM, 2007:2-12.

  [9] 蔣翠清,胡俊妍.基于FP-tree的最大頻繁項集挖掘算法[J].合肥工業大學學報(自然科學版),2010,33(9):1387-1391.

  [10] 陳光鵬,楊育彬,高陽,等.一種基于MapReduce的頻繁閉項集挖掘算法[J].模式識別與人工智能,2012,25(2):220-224.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品青青大伊人av| 欧美午夜免费| 久久久一区二区三区| 久久精品国产免费看久久精品| 久久久久女教师免费一区| 亚洲欧美影院| 99精品福利视频| 日韩一级欧洲| 久久精品国产77777蜜臀| 91久久视频| 欧美在线观看你懂的| 久久精品一区四区| 黄色亚洲免费| 99视频精品| 韩国av一区二区三区四区| 亚洲午夜在线| 午夜精品一区二区在线观看 | 亚洲精品美女免费| 亚洲国产精品成人一区二区| 加勒比av一区二区| 这里是久久伊人| 亚洲一区二区在线| 亚洲女优在线| 午夜激情综合网| 欧美丰满高潮xxxx喷水动漫| 又紧又大又爽精品一区二区| 亚洲国产一二三| 欧美日韩亚洲视频一区| 亚洲一区尤物| 欧美人在线观看| 亚洲国产色一区| 国产日韩综合| 亚洲一区二区视频在线| 永久免费视频成人| 欧美亚洲一区| 在线一区二区三区四区| 麻豆久久久9性大片| 午夜国产欧美理论在线播放| 欧美成年人视频网站| 欧美在线视频全部完| 国产精品午夜在线| 亚洲欧美在线另类| 一区二区三区福利| 欧美日韩国产成人高清视频| 91久久在线观看| 亚洲第一色在线| 欧美www在线| 亚洲丁香婷深爱综合| 国内精品久久久久久久影视麻豆| 亚洲欧美日本日韩| 亚洲欧美制服中文字幕| 国产精品免费在线| 亚洲永久网站| 亚洲国产精品www| 日韩一级大片| 激情国产一区| 欧美手机在线视频| 久久夜色精品国产噜噜av| 亚洲精品中文字幕女同| 亚洲自拍16p| 亚洲欧洲日韩女同| 国外成人在线| 国产精品久久久久9999| 久久午夜色播影院免费高清| 国产精品99久久久久久久久久久久| 小黄鸭精品aⅴ导航网站入口| 亚洲激情成人网| 国产亚洲一级高清| 欧美日韩一区二区三区在线看| 久久久久欧美精品| 新67194成人永久网站| 亚洲精品一区中文| 91久久精品国产| 国模精品一区二区三区色天香| 亚洲日本中文字幕| 欧美一区二区免费视频| 亚洲一区在线看| 亚洲伊人色欲综合网| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲女同在线| 一区二区三区四区国产| 亚洲国产影院| 亚洲日本一区二区| 亚洲高清网站| 亚洲精品视频在线观看免费| 亚洲国产精品一区| 亚洲第一综合天堂另类专| 在线观看一区二区精品视频| 伊人久久男人天堂| 亚洲电影免费观看高清完整版| 在线视频观看日韩| 亚洲欧洲日韩综合二区| 亚洲精品中文字幕在线观看| av成人免费| 亚洲欧美福利一区二区| 欧美亚洲一区| 亚洲日本欧美| 亚洲尤物在线| 久久精品亚洲一区二区| 蜜月aⅴ免费一区二区三区| 欧美女同在线视频| 国产精品网红福利| 在线成人黄色| 亚洲深爱激情| 亚洲福利视频三区| 亚洲无人区一区| 久久精品国产一区二区三区免费看| 久久乐国产精品| 欧美国产综合视频| 国产精品午夜久久| 亚洲激情视频在线| 亚洲欧美自拍偷拍| 一区二区三区www| 久久亚洲免费| 欧美午夜无遮挡| 精品成人在线视频| 亚洲欧美在线一区二区| 夜夜嗨av一区二区三区网站四季av | 久久精品国语| 欧美吻胸吃奶大尺度电影| 伊人久久噜噜噜躁狠狠躁| 亚洲性夜色噜噜噜7777| 亚洲国产日韩精品| 性欧美超级视频| 欧美午夜精品久久久| 亚洲黄页一区| 亚洲国产精品电影在线观看| 亚洲欧美日韩精品久久久| 亚洲国产欧美一区二区三区丁香婷| 亚洲欧美激情四射在线日 | 亚洲国产高清一区| 久久精品国产999大香线蕉| 欧美亚洲自偷自偷| 欧美午夜精彩| 99re66热这里只有精品4| 亚洲人成人一区二区三区| 久久久噜噜噜久久人人看| 国产午夜精品一区理论片飘花| 国产精品99久久久久久久久| 亚洲激情在线| 亚洲视频电影图片偷拍一区| 欧美日韩精品三区| 一区二区三区欧美亚洲| 亚洲婷婷国产精品电影人久久| 欧美日韩国产精品| 99亚洲一区二区| 亚洲特色特黄| 国产精品一区亚洲| 性视频1819p久久| 久久一本综合频道| 亚洲国产另类 国产精品国产免费| 亚洲国产另类久久久精品极度| 欧美a级一区| 一区二区三区四区精品| 午夜精品国产更新| 一区二区亚洲精品国产| 日韩视频在线观看| 国产精品卡一卡二| 亚洲电影免费观看高清完整版在线观看 | 亚洲精品美女91| 欧美体内she精视频在线观看| 亚洲欧美国产另类| 欧美成人免费全部| 亚洲一卡久久| 欧美v日韩v国产v| 亚洲在线观看视频| 欧美成人有码| 亚洲欧美日韩精品| 欧美激情第1页| 亚洲欧美日韩一区二区| 欧美成人免费网| 亚洲女同在线| 欧美精品少妇一区二区三区| 亚洲一区二区三区四区五区黄| 免费一级欧美片在线观看| 亚洲一级黄色| 欧美日韩午夜视频在线观看| 欧美在线黄色| 国产精品入口麻豆原神| 亚洲日本欧美天堂| 国模精品一区二区三区| 亚洲欧美在线视频观看| 91久久精品日日躁夜夜躁国产| 久久国产日韩欧美| 亚洲视频精选| 欧美日韩国产大片| 亚洲人成亚洲人成在线观看图片 | 亚洲图片你懂的| 欧美日韩一区二区三区高清| 亚洲高清一二三区| 国产欧美日韩91| 欧美一区亚洲二区| 亚洲欧美国产精品专区久久| 欧美韩国一区| 亚洲每日在线| 99精品欧美一区二区三区综合在线| 欧美成人a视频| 日韩网站在线观看| 亚洲精品四区| 欧美日韩色婷婷|