《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種基于FP-growth的并行SON算法的實現
一種基于FP-growth的并行SON算法的實現
來源:微型機與應用2014年第8期
郭進偉1,2,皮建勇1,2
(1.貴州大學 計算機科學與技術學院,貴州 貴陽550025;2.貴州大學 云計算與物聯網研究中心,
摘要: 單節點運行的傳統SON算法能夠有效降低CPU和I/O負載,而且算法僅需要對整個事務數據集掃描兩次。但是在算法執行的階段一中發現局部頻繁項集時采用的Apriori算法仍然需要對每個分區進行多次掃描。在深入研究SON算法的基礎上,根據MapReduce編程模型提出了基于FP-growth的SON算法的并行化實現。實驗結果表明,基于FP-growth的并行SON算法不僅降低了傳統SON算法的運行時間,并且隨著分區數目的增加還能獲取比較好的加速比。
Abstract:
Key words :

摘  要: 單節點運行的傳統SON算法能夠有效降低CPU和I/O負載,而且算法僅需要對整個事務數據集掃描兩次。但是在算法執行的階段一中發現局部頻繁項集時采用的Apriori算法仍然需要對每個分區進行多次掃描。在深入研究SON算法的基礎上,根據MapReduce編程模型提出了基于FP-growth的SON算法的并行化實現。實驗結果表明,基于FP-growth的并行SON算法不僅降低了傳統SON算法的運行時間,并且隨著分區數目的增加還能獲取比較好的加速比。
關鍵詞: FP-growth;SON 算法;MapReduce;數據挖掘

    信息技術的高速發展使得各行各業累積了海量數據,如何從中提取有用的信息已經成為了數據挖掘所面臨的巨大挑戰。頻繁項集是數據挖掘中一個非常重要的概念,Apriori算法[1]和FP-growth算法[2]是挖掘頻繁項集最為著名的算法,但其串行計算的復雜度較高。SON算法[3]為并行化發現頻繁項集提供了解決思路。
    谷歌于2004年提出了MapReduce編程模型[4],為并行處理和分析大規模的數據提供了重要的參考。根據MapReduce編程模型涌現出了眾多的開源項目,其中Apache基金會下的Hadoop[5]是其中比較有代表性的分布式并行編程框架。近幾年隨著大數據的興起,MapReduce編程模型的研究[6]以及基于MapReduce的數據挖掘算法的實現[7]也愈加火熱。
1 相關概念
1.1 FP-growth算法簡介

    FP-growth算法是Han Jiawei等人于2000年提出的發現頻繁項集的算法,該算法采用分治策略將一個問題分解為較小的子問題,從而發現以某個特定后綴結尾的所有頻繁項集。該算法使用了一種稱之為頻繁模式樹FP-tree(Frequent Pattern Tree)的數據結構,FP-tree是一種特殊的前綴樹,由頻繁項頭表和項前綴樹構成。
    FP-growth算法發現頻繁項集的基本思想是:根據FP-tree構造每個頻繁項的條件FP-tree,每個頻繁項都是一個前綴;每個前綴和其條件FP-tree的每一項合并生成一個新的前綴,根據此前綴繼續生成條件FP-tree,直到生成的條件FP-tree為空;每一個前綴都是頻繁的,即算法所得到的所有的前綴即為最終的頻繁項集。
    相比于Apriori算法,FP-growth算法有如下優點:(1)將較大的數據庫壓縮成了較小的數據結構保存在內存中,從而避免了反復掃描數據庫,降低了掃描開銷;(2)基于FP-tree的挖掘采用遞歸的方式搜索較短的模式并將其逐次連接起來,從而避免生成大量的候選項集;(3)將原本的挖掘任務劃分成一組在有限的條件數據庫中挖掘特定的頻繁模式的任務,從而降低了搜索空間。
1.2 SON算法簡介
    Apriori算法通過迭代的方式來挖掘出所有的頻繁項集,即候選(k+1)-項集的產生依賴于頻繁k-項集,然后通過掃描事物數據集來計算出每一個候選(k+1)-項集支持度計數,進而判斷得到頻繁(k+1)-項集,因此該算法需要對事務數據集進行多次掃描。如果找到這樣一種方法,通過該方法得到的候選項集包含了該事務數據集中所有的頻繁項集,那么只需要對事物數據集掃描一遍即可找出所有的頻繁項集。
    以上為分區算法的核心思想。分區算法需要對事物數據集進行兩遍掃描,第一遍掃描找出候選項集,此候選項集包含所有的頻繁項集。第二遍掃描對所有的候選項集新型計數,其中大于最小支持度計數的候選項集即為頻繁項集。
    根據分區算法兩遍掃描的思想,算法的執行分為兩個階段。在第一個階段,算法把事物數據集劃分為數個互不相交的分區,然后分別為每個分區計算出本分區的頻繁項集(稱之為局部頻繁項集,此項集是潛在的整個事務數據集的頻繁項集),最后把所有分區的頻繁項集匯聚到一起就得到了整個事務數據集的候選項集(稱之為全局候選項集)。在第二個階段,為上一個階段得到的全局候選項集進行計數,從而得到候選項集的支持度計數,其中大于最小支持度計數的候選項集即為全局頻繁項集。以下為SON算法的偽代碼,表1為偽代碼中所用的符號定義說明。

    偽代碼中首先將事務數據集D劃分為n個分區,階段1分別對每一個分區pi通過gen_large_itemsets方法計算其局部頻繁項集L′,該方法采用的是Apriori算法。在合并階段,算法將每個分區局部頻繁項集合并成一個全局候選項集CG。在階段2中,算法計算每個全局候選項集的支持度計數,其中大于最小支持度計數minSup的為最終的頻繁項集LG。
2 基于FP-growth的SON算法的并行化實現
    從SON算法的描述中可以看出,在算法第一階段中需要計算出局部頻繁項集,原始的SON算法采用Apriori算法來計算每個分區的頻繁項集,即同樣需要對每個分區掃描多次才能得到局部頻繁項集,所以SON算法是宏觀上對整個事務數據集掃描兩次,而從局部上來看仍然需要對每個分區分別掃描多次。本節提出的算法實現基于FP-growth,這將有效減少對分區的掃描次數。
    SON算法非常適合于并行計算環境,SON算法中的每一個分區都可以并行地處理。用MapReduce編程模型對基于FP-growth的SON算法進行并行化實現。算法的實現需要兩輪迭代,第一輪MapReduce迭代計算出每一個分區的局部頻繁項集并由此生成全局候選項集。第二輪MapReduce迭代計算出每一個全局候選項集的支持度計數,并根據支持度計數來判斷是否為頻繁項集。
2.1 第一輪MapReduce迭代
    在Map階段,每個Map任務完成從事務數據集的某一個分區中讀取到的事務,并將該分區中所有的事務存儲在本地內存中,然后利用FP-growth算法算出本分區的局部頻繁項集,最后輸出的是一個鍵值對<F,1>(其中F是本分區的一個局部頻繁項集,1與鍵沒有任何關聯)。
    class FirstMapper {
       List tSet; //事務數據集
       Map localFI; //局部頻繁項集
       map(key, value) {
        //將value封裝為事務
        t = genTransaction(value);
        //將事務添加到事務數據集中
        tSet.add(transaction);
       }
       cleanup() {
        //用FP-growth算法計算得到局部頻繁項集
        localFI = genFrequentItemsets(transaction);
        //將局部頻繁項集輸出
        for(i = 1; (fis = localFI.get(i)) != null; i++)
           for(f : fis)
            write(f, 1);
       }
    }
    在Reduce階段,每個Reduce任務會處理一組局部頻繁項集,上個階段所有的Map任務輸出的相同的局部頻繁項集會集中到同一個Reduce任務上進行處理,Reduce的任務就是將相同的局部頻繁項集輸出一次即可,最后的輸出結果即為全局的候選項集。

 


    class FirstReducer {
       reduce(key, values) {
        write(key, null);
       }
    }
2.2 第二輪MapReduce迭代
    在Map階段,每個Map任務仍然處理事務數據集上的一個分區,在Map任務開始前,把上一個MapReduce迭代產生的全局候選項集放入本地內存中,Map任務開始后每讀入一個事務,找尋全局候選項集中哪些候選項集為此事務的子集,如果某候選項集為此事務子集,即輸出<F,1>(其中F為此候選項集,1代表為此事務的子集),便于在下一階段計算此候選項集的支持度計數。
    class SecondMapper {
       List cI; //全局候選項集
       setup() {
        //初始化全局候選項集
        cI = getCandidateItemsets();
       }
       map(key, value) {
        t = genTransaction(value);
        //若候選項存在于某事務中就進行輸出
        for(f : cI)
           if(t.contain(f))
            write(f, 1);
       }
    }
    在Reduce階段,每個Reduce任務處理一組全局候選項集,上個階段所有的Map任務輸出的相同的候選項集會集中到同一個Reduce任務上進行處理,計算全局候選項集的支持度計數,根據其支持度計數即可判斷該項集是否為頻繁項集,Reduce任務會將得到的全局頻繁項集進行輸出。
    class SecondReducer {
       reduce(key, values) {
        sum = 0;
        for(val : values)
        sum += val.get();
        //若候選項大于最小支持度就輸出
        if(sum >= minsup)
        write(key, null);
       }
    }
3 實驗結果與實驗分析
3.1 實驗環境

    整個實驗在Hadoop平臺下完成,平臺采用了Hadoop的1.0.4穩定版本。硬件設備為4臺x86架構的PC,主設備節點采用Intel志強四核處理器,內存為2 GB;從設備節點采用了AMD四核處理器,主頻為2.7 GHz,內存為2 GB。
3.2 實驗數據集
    實驗采用accidents[8]作為實驗事務數據集,該數據集包含1991年~2000年Flanders地區的交通事故記錄。該數據集的大小為34 678 KB,共340 184條事務,有572個不同的項,平均每條事務包含45個項。
3.3 實驗分析
    為了對基于Apriori的并行SON算法和基于FP-growth的并行SON算法進行比較,首先用MapReduce模型分別實現兩個算法。發現兩個算法僅在階段1的局部頻繁項集處有異,在階段2沒有任何差別,所以實驗僅對兩個算法的階段1的運行進行比較。兩個算法分別在同等的集群條件和同樣的數據集下運行。由于分布式環境下的實驗結果具有一定的顛簸性,所有實驗的最終結果均為多次實驗后取得的合理值。
    圖1為accidents數據集在保持不變和劃分為2塊、4塊、8塊的情況下,兩種算法分別在第一輪迭代時消耗的總時間。從圖1可以看出,在算法采用相同的分區數目時,基于FP-growth的并行SON算法比基于Apriori的并行SON算法運行時間明顯減少。隨著數據集劃分的分區數目的增加,兩種算法運行的總時間將明顯減少。

    圖2顯示了隨著accidents數據集劃分塊數的增加,基于FP-growth的并行SON算法的運行能夠得到接近線性的加速比。

    本文分析了傳統的SON算法,指出了SON算法雖然從宏觀上對事務數據集掃描了兩次,但是發現在局部頻繁項集時采用的Apriori算法仍然需要對每個分區掃描多次。根據MapReduce編程模型,本文提出的基于FP-growth的并行SON算法的實現,不僅減少了SON算法在階段1中的運行時間,并且算法運行在Hadoop集群上,為處理海量數據提供了可能。雖然本文提出的算法的實現從某種程度上可以看作是FP-growth算法的并行化實現,但是每個分區生成的FP-tree都是獨立的,互相之間沒有聯系,這導致了隨著分區數目的增加使階段1生成的全局頻繁項集也會增加。因此,如何利用MapReduce實現FP-growth的完全并行化實現將在后續工作中進一步研究。
參考文獻
[1] AGRAWAL R,SRIKANT R.Fast algorithms for mining association rules[C].Proceedings of 20th Conference on Very Large Data Bases,1994:487-499.
[2] Han Jiawei,Pei Jian,Yin Yiwen.Mining frequent patterns without candidate generation[C].Proceedings of Conference on the Management of Data,2000:1-12.
[3] SAVASERE A,OMIECINSKI E,NAVATHE S.An efficient algorithm for mining association rules in large databases[C]. Proceedings of the 21st Conference on Very Large Database,1995:432-444.
[4] DEAN J,GHEMAWAT S.MapReduce:simplified data processing on large clusters[J].Communications of the ACM,2008,51(1):107-113.
[5] Apache Hadoop[EB/OL].[2013-07-12].http://hadoop.apache.org.
[6] 李建江,崔健,王聃,等.MapReduce并行編程模型研究綜述[J].電子學報,2011,39(11):2635-2642.
[7] Apache Mahouts[EB/OL].[2013-08-12].http://mahout.apache.org/.
[8] Frequent Itemset Mining Dataset Repository[EB/OL].[2013-08-28].http://fimi.ua.ac.be/data.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲精品资源美女情侣酒店| 久久婷婷国产综合国色天香| 欧美一区二区精品在线| 欧美一区二区视频观看视频| 国产精品一区免费视频| 国产精品电影在线观看| 亚洲人成网站999久久久综合| 欧美一区二区免费观在线| 亚洲国产老妈| 欧美一区国产二区| 久久久久久久97| 亚洲精品小视频在线观看| 久久精品国产清自在天天线| 国产精品chinese| 欧美主播一区二区三区| 久久精品国产清高在天天线| 午夜久久资源| 亚洲第一黄色网| 久久激情一区| 亚洲一区欧美| 在线观看日韩av先锋影音电影院| 欧美国产欧美亚州国产日韩mv天天看完整| 国产三区精品| 亚洲蜜桃精久久久久久久| 久久激情五月婷婷| 亚洲午夜精品视频| 在线欧美电影| 精品动漫3d一区二区三区免费版| 久久精品人人| 欧美日韩精品欧美日韩精品一| 狠狠久久亚洲欧美专区| 狠狠色丁香婷综合久久| 欧美中文字幕| 性欧美videos另类喷潮| 欧美天堂亚洲电影院在线播放| 欧美成人精品一区| 欧美日韩国产大片| 亚洲午夜激情网站| 亚洲一级网站| 国产亚洲激情在线| 狼人社综合社区| 亚洲美女少妇无套啪啪呻吟| 免费一级欧美片在线播放| 在线中文字幕不卡| 欧美日韩在线电影| 久久婷婷av| 久久久综合视频| 伊人成综合网伊人222| 国产精品久久91| 在线观看视频日韩| 亚洲午夜女主播在线直播| 夜夜嗨一区二区三区| 亚洲国产视频一区二区| 欧美激情亚洲国产| 国产精品久久久久久久午夜片| 亚洲永久免费视频| 欧美一区二区三区在线观看视频| 国产精品日韩一区二区| 欧美影院午夜播放| 欧美在线视频导航| 欧美有码在线观看视频| 久久精品视频免费| 一区二区三区日韩在线观看| 欧美日韩一卡二卡| 免费日韩av片| 国产欧美日韩亚洲一区二区三区| 亚洲盗摄视频| 欧美日本一道本在线视频| 久久婷婷国产综合精品青草| 亚洲在线成人| 一区二区黄色| 在线看片一区| 亚洲国产日韩欧美在线99| 农夫在线精品视频免费观看| 欧美好吊妞视频| 亚洲欧洲一区二区在线观看| 久久成人久久爱| 激情伊人五月天久久综合| 亚洲香蕉伊综合在人在线视看| 最新国产成人av网站网址麻豆| 国产精品嫩草影院av蜜臀| 亚洲一区二区三区欧美| 在线成人欧美| 欧美日韩国产另类不卡| 亚洲在线一区二区三区| 国产日韩欧美视频在线| 久久综合九色| 久久综合久久久| 欧美粗暴jizz性欧美20| 国语自产偷拍精品视频偷| 亚洲国产综合91精品麻豆| 久久精品国产欧美激情| 久久久人成影片一区二区三区观看| 欧美色视频日本高清在线观看| 久久久久久有精品国产| 亚洲成色777777女色窝| 国产精品欧美日韩| 欧美一区二区三区免费看| 久久综合久久久久88| 久久av资源网| 国产精品白丝jk黑袜喷水| 久久视频在线免费观看| 欧美日韩日日骚| 一区二区在线观看视频| 亚洲黄色影院| 欧美久久久久中文字幕| 欧美三级午夜理伦三级中文幕| 影音先锋日韩精品| 午夜精品视频在线观看一区二区| aa亚洲婷婷| 亚洲欧洲日产国码二区| 国产麻豆日韩欧美久久| 亚洲精品日韩综合观看成人91| 久久久久久久久久久久久女国产乱| 欧美电影美腿模特1979在线看| 在线日本欧美| 久久精品二区| 夜色激情一区二区| 亚洲精品久久久久久一区二区| 国产毛片精品国产一区二区三区| 亚洲精品乱码久久久久久按摩观| 亚洲成色最大综合在线| 欧美成人按摩| 亚洲欧美日韩在线综合| 欧美色图天堂网| 国产资源精品在线观看| 亚洲大胆人体视频| 一区二区三区在线免费视频| 久久最新视频| 欧美日韩中文在线观看| 欧美午夜www高清视频| 亚洲人屁股眼子交8| 亚洲电影免费在线观看| 亚洲一区二区三区在线观看视频| 亚洲欧美日韩国产另类专区| 久久久久一本一区二区青青蜜月| 欧美日韩1080p| 亚洲黄色在线看| 久久久久青草大香线综合精品| 亚洲最新在线| 国产亚洲欧美日韩美女| 99视频国产精品免费观看| 精品va天堂亚洲国产| 国产色产综合色产在线视频| 欧美视频精品一区| 国产精品天美传媒入口| 亚洲第一成人在线| 免费在线观看日韩欧美| 久久精品91| 国产精品视频精品| 一区二区三区国产精华| 国产麻豆9l精品三级站| 亚洲小说区图片区| 久久成人免费日本黄色| 国产精品二区在线| 久久gogo国模啪啪人体图| 久久久久这里只有精品| 一本久久知道综合久久| 亚洲欧洲一区二区三区久久| 老司机成人在线视频| 亚洲精品欧美专区| 尤物九九久久国产精品的特点| 欧美日韩在线直播| 欧美在线免费观看亚洲| 亚洲免费在线看| 翔田千里一区二区| 国产精品毛片va一区二区三区| 欧美日韩精品免费观看视频| 99热免费精品在线观看| 一本色道**综合亚洲精品蜜桃冫| 国产亚洲毛片在线| 亚洲日本va在线观看| 欧美日韩在线播放三区四区| 亚洲国产精品久久久久秋霞影院| 一本色道久久88精品综合| 激情偷拍久久| 久久久久久久综合色一本| 欧美日韩一区二区精品| 国产精品乱子乱xxxx| 亚洲一卡二卡三卡四卡五卡| 狠狠综合久久| 国产精品视频久久久| 夜夜爽99久久国产综合精品女不卡| 亚洲一区在线观看免费观看电影高清| 在线中文字幕一区| 亚洲精品网站在线播放gif| 国产亚洲欧美一级| 99综合电影在线视频| 国产精品久久久久久影院8一贰佰| 午夜久久一区| 亚洲精品美女91| 欧美激情一区二区三级高清视频| 国产美女一区| 欧美顶级艳妇交换群宴| 亚洲欧美日韩在线一区| 亚洲国产经典视频| 国产亚洲成av人片在线观看桃| 国产农村妇女精品一区二区| 亚洲欧洲一区二区三区在线观看| 国产日韩综合一区二区性色av| 国产亚洲精品bv在线观看| 亚洲免费观看在线视频| 欧美高清视频一区二区| 久久精品官网| 欧美主播一区二区三区美女 久久精品人| 亚洲日本一区二区三区| 欧美精品日韩www.p站| 快she精品国产999| 一区二区三区高清不卡| 国产又爽又黄的激情精品视频| 国产欧美视频在线观看| 国产综合色一区二区三区| 亚洲激情六月丁香| 欧美视频导航| 黄网动漫久久久| 欧美一区二区三区久久精品茉莉花| 午夜在线一区二区| 国产精品二区影院| 中文久久乱码一区二区| 西瓜成人精品人成网站| 国产一区二区丝袜高跟鞋图片| 亚洲欧洲视频在线| 亚洲一区999| 欧美理论在线| 极品尤物一区二区三区| 精品福利电影| 老司机凹凸av亚洲导航| 亚洲欧美日本日韩| 亚洲一区二区视频在线观看| 欧美激情在线狂野欧美精品| 欧美午夜精品一区二区三区| 日韩亚洲欧美在线观看| 性18欧美另类| 一区二区三区精品久久久| 日韩视频永久免费| 毛片av中文字幕一区二区| 另类激情亚洲| 亚洲国产成人精品女人久久久| 亚洲精品少妇| 一区电影在线观看| 亚洲一区成人| 亚洲一区在线直播| 国产乱码精品一区二区三| 国产一区二区无遮挡| 欧美日韩国产小视频| 国产综合久久久久久鬼色| av72成人在线| 亚洲欧美成人一区二区三区| 久久婷婷成人综合色| 午夜精品美女久久久久av福利| 一区二区三区视频在线观看| 亚洲精品乱码久久久久久蜜桃91| 久久九九免费视频| 欧美精品一区二区三区久久久竹菊| 免费久久久一本精品久久区| 狠狠色综合一区二区| 99精品99久久久久久宅男| 乱人伦精品视频在线观看| 99国产精品视频免费观看一公开| 午夜精品久久久久久久99黑人| 久久久久女教师免费一区| 免费观看成人www动漫视频| 亚洲少妇在线| 国产精品久久亚洲7777| 亚洲欧美一区二区在线观看| 老妇喷水一区二区三区| 久色婷婷小香蕉久久| 国产精品夜夜夜一区二区三区尤| 国产在线观看91精品一区| 久久精品成人一区二区三区| 亚洲精品女av网站| 亚洲激情在线观看| 亚洲一区三区在线观看| 激情综合网激情| 亚洲青涩在线| 亚洲免费视频一区二区| 亚洲三级性片| 日韩亚洲国产精品| 亚洲精品女人| 国产精品资源在线观看| 亚洲影院色无极综合| 亚洲一区二区三区影院| 午夜视频一区在线观看| 国产综合色一区二区三区| 欧美精品久久一区| 亚洲国产1区| 国产主播一区| 午夜精品福利一区二区蜜股av| 亚洲国产高清高潮精品美女| 欧美日韩精品免费在线观看视频| 欧美日韩一级片在线观看| 欧美日韩国产首页在线观看| 亚洲理伦在线| 国产精品久久波多野结衣| 国内精品久久久久影院色| 国产精品久久久一区二区| 亚洲欧美乱综合| 久久精品综合| 极品少妇一区二区三区| 久久gogo国模啪啪人体图| 亚洲国产日韩欧美在线图片| 欧美阿v一级看视频| 久久精品人人做人人爽| 韩国自拍一区| 久久久久久成人| 欧美日韩性生活视频| 亚洲国产岛国毛片在线| 国产精品毛片在线看| 99re在线精品| 欧美aⅴ一区二区三区视频| 国产精品美女主播在线观看纯欲| 欧美剧在线观看| 欧美日韩在线不卡一区| 国产精品一区免费在线观看| 久久永久免费| 精品成人一区| 一区二区日韩精品| 欧美一区网站| 国产精品久久精品日日| 欧美片第1页综合| 久久综合九色综合欧美就去吻| 欧美高清在线播放| 亚洲二区在线视频| 亚洲精品日韩综合观看成人91| 久久久久免费观看| 午夜免费在线观看精品视频| 亚洲三级色网| 国产区二精品视|