亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MapReduce的Apriori算法并行化研究

        2015-05-30 03:25:42謝志明
        關(guān)鍵詞:云計(jì)算數(shù)據(jù)挖掘

        謝志明

        摘 要: 針對目前傳統(tǒng)的Apriori算法對硬件要求較高且運(yùn)算效率低下的情形,提出將經(jīng)典的數(shù)據(jù)挖掘關(guān)聯(lián)規(guī)則算法Apriori移植到云計(jì)算平臺,并結(jié)合MapReduce機(jī)制進(jìn)行海量數(shù)據(jù)挖掘,有效地解決了傳統(tǒng)Apriori算法存在的瓶頸問題以及對硬件要求高的依賴。通過數(shù)據(jù)和節(jié)點(diǎn)對比實(shí)驗(yàn)共同驗(yàn)證了移植后的Apriori算法的運(yùn)算效率比傳統(tǒng)的Apriori算法提高了許多倍,且隨著數(shù)據(jù)量和節(jié)點(diǎn)數(shù)的增加效果愈發(fā)明顯。由于改良后的Apriori算法具有高效性和可行性,這將為解決當(dāng)前大數(shù)據(jù)挖掘問題提供了一種全新的、有效的解決方案,并且這一結(jié)論還可為其他數(shù)據(jù)挖掘算法的移植提供可靠的參考。

        關(guān)鍵詞: Apriori算法; 數(shù)據(jù)挖掘; 關(guān)聯(lián)規(guī)則; 云計(jì)算; MapReduce機(jī)制

        中圖分類號: TP 399 文獻(xiàn)標(biāo)志碼: A 文章編號: 1671-2153(2015)05-0076-05

        0 引 言

        傳統(tǒng)Apriori算法是數(shù)據(jù)挖掘中研究最成熟、最活躍的關(guān)聯(lián)規(guī)則算法之一,利用它可以發(fā)現(xiàn)數(shù)據(jù)中所蘊(yùn)含的相互關(guān)系[1]。由于傳統(tǒng)的數(shù)據(jù)挖掘算法大多是以單節(jié)點(diǎn)的機(jī)器為平臺,所處理的數(shù)據(jù)對象也主要是小到中等規(guī)模的,當(dāng)面對海量的、多維的、分散的數(shù)據(jù)集合時(shí),現(xiàn)有的算法則往往顯得力不從心[2]。

        如何處理異構(gòu)海量數(shù)據(jù),選用那種高效的數(shù)據(jù)處理模式來提高運(yùn)算速度并降低內(nèi)存的消耗,已成為亟待解決的問題。隨著云計(jì)算技術(shù)和大數(shù)據(jù)技術(shù)相繼提出和應(yīng)用,分布式大數(shù)據(jù)處理系統(tǒng)日漸被人們關(guān)注和研究?;贖adoop搭建的云計(jì)算平臺具有分布式大數(shù)據(jù)處理能力和海量的數(shù)據(jù)存儲能力,這些都將為解決當(dāng)前異構(gòu)海量數(shù)據(jù)挖掘問題提供了一種全新的、有效的解決方案[3-4]。

        1 Apriori算法描述及相關(guān)研究

        Apriori算法原型是以用戶事先設(shè)置好的最小支持度(min_support)和最小可信度(min_confidence)為條件,通過對需處理的事務(wù)數(shù)據(jù)集進(jìn)行重復(fù)多次掃描,從中找出項(xiàng)與項(xiàng)之間所存在的并發(fā)關(guān)系,找到所需的關(guān)聯(lián)規(guī)則和判斷是否滿足用戶要求的過程,即發(fā)現(xiàn)頻繁項(xiàng)集和產(chǎn)生規(guī)則的過程。如圖1所示。

        文獻(xiàn)[5]中說到Apriori算法在掃描數(shù)據(jù)庫時(shí)需經(jīng)過自連接、剪枝生成頻繁項(xiàng)集,并采用逐層迭代法直到無法產(chǎn)生新的頻繁項(xiàng)集時(shí)才停止掃描。文獻(xiàn)[6]解釋了在處理大規(guī)模數(shù)據(jù)時(shí),當(dāng)設(shè)置的最小支持度偏小且產(chǎn)生的頻繁項(xiàng)也較多時(shí),發(fā)現(xiàn)該算法效率低下。隨著研究的不斷深入和擴(kuò)大,人們發(fā)現(xiàn)在大規(guī)模數(shù)據(jù)量下傳統(tǒng)Apriori算法的優(yōu)勢越來越不明顯;相反,在實(shí)際應(yīng)用中很多時(shí)候還達(dá)不到用戶的要求。于是許多專家學(xué)者對該算法做了一些專門的改良實(shí)驗(yàn),如文獻(xiàn)[7]中提出了一種基于數(shù)據(jù)劃分的思想用于提高Apriori算法處理海量數(shù)據(jù)挖掘的效率等。鑒于此,本文將結(jié)合分布式大數(shù)據(jù)處理系統(tǒng)Hadoop,對移植到云計(jì)算平臺的Apriori算法進(jìn)行實(shí)驗(yàn)驗(yàn)證,證明是否能有效提高數(shù)據(jù)挖掘效率。

        2 Apriori算法并行化描述

        Hadoop平臺有自己的分布式文件系統(tǒng)(HDFS),它是Hadoop的核心子項(xiàng)目之一,能對海量數(shù)據(jù)進(jìn)行存儲和管理。當(dāng)數(shù)據(jù)上傳到HDFS上后,由命名節(jié)點(diǎn)(Namenode)統(tǒng)一管理對各個(gè)節(jié)點(diǎn)文件的訪問。上傳來的大文件將會被分割成一個(gè)或多個(gè)塊(block),這些block存儲在數(shù)據(jù)節(jié)點(diǎn)(Datanode)集合里,并由Datanode負(fù)責(zé)調(diào)用Map()函數(shù)[8]。Hadoop平臺中的Map()函數(shù)負(fù)責(zé)處理局部的數(shù)據(jù),對候選項(xiàng)集做本地統(tǒng)計(jì)后,然后把統(tǒng)計(jì)信息傳到主節(jié)點(diǎn),最后啟動Reduce程序,它負(fù)責(zé)把Map()函數(shù)局部統(tǒng)計(jì)統(tǒng)計(jì)結(jié)果匯總,然后判斷那些是滿足要求的候選項(xiàng)集,即形成頻繁項(xiàng)集[9]。MapReduce Apriori(簡稱Apriori_MR)算法偽代碼如下:

        輸入:D(HDFS上的數(shù)據(jù)), min_support

        (1)L1=find_frequent_1-itemsets(D);

        (2)for(k=2;Lk-1≠Φ;k++) {

        (3)Map1(key,value,Lk-1,X.count),

        Map2(key,value,Lk-1,X.count),……,

        Mapi(key,value,Lk-1,X.count)

        (4)Lk=Reduce(Lk-1,X.count,Lk-1,K.support)}

        (5)return L=LUkLk;

        輸出:頻繁項(xiàng)目集L

        MapReduce Apriori算法處理過程如圖2所示。

        3 Apriori_MR算法設(shè)計(jì)

        該算法在MapReduce編程模式中是以鍵值對(Key/Value)的形式進(jìn)行計(jì)算的,計(jì)算完畢后也是以鍵值對的形式輸出。在進(jìn)行MapReduce處理的過程中,Map()函數(shù)和Reduce()函數(shù)是最為關(guān)鍵的兩個(gè)函數(shù)。如需要實(shí)現(xiàn)某些特定功能,可以通過改寫Map()和Reduce()函數(shù)來完成。

        3.1 Key/Value的設(shè)計(jì)

        表1為定義的Key/Value類型情況。表1中,Map()函數(shù)是以Key/Value鍵值對輸入的,期間會產(chǎn)生一系列Key/Value鍵值對并作為中間結(jié)果輸出寫入到本地磁盤。MapReduce框架則按照Key值自動聚集原則將具有相同的Key值統(tǒng)一交給Reduce()函數(shù)處理。Reduce()函數(shù)將這些具有相同的Key進(jìn)行合并得到相應(yīng)的Value值,最終產(chǎn)生一個(gè)全新的系列Key/Value鍵值對并將結(jié)果寫入到HDFS中。

        3.2 Map的設(shè)計(jì)

        在Hadoop中,用遠(yuǎn)程過程調(diào)用(RPC,Remote Procedures Call)的方式來實(shí)現(xiàn)各個(gè)節(jié)點(diǎn)的通信[8]。RPC協(xié)議主要作用是將消息編碼為二進(jìn)制流,該過程是通過序列化方式實(shí)現(xiàn)的。在MapReduce編程模型中,用戶的輸入與輸出數(shù)據(jù)要求Key和Value都必須是序列化的。

        Hadoop的序列化核心是Writable,它提供了兩個(gè)接口方法來實(shí)現(xiàn)二進(jìn)制格式數(shù)據(jù)流的寫入和讀出,其特點(diǎn)是快速和緊湊。MapReduce的數(shù)據(jù)路徑傳遞中最重要的就是Writables,通過重新定義該接口能控制二進(jìn)制值表示和排序等功能。當(dāng)使用這個(gè)經(jīng)重新定義過的擴(kuò)展Writables接口的Frequent類,可以把每次生成的頻繁Lk存儲到類Frequent里面,然后通過算法Apriori_gen(Lk)得到候選項(xiàng)集Ck,最后可以掃描局部的數(shù)據(jù)得到各個(gè)候選項(xiàng)項(xiàng)集Ck中各個(gè)項(xiàng)的個(gè)數(shù)。其偽代碼如下:

        map(key, value, Lk, X.count)

        {

        Ck= Apriori_gen(Lk);

        for(i=1;i<=Ck .size();i++) {

        if(value中含有Ck中的項(xiàng))

        Ck .item的計(jì)算記錄為1;

        write(Ck .item, 1); }

        }

        3.3 Reduce的設(shè)計(jì)

        Reduce的主要工作是將由Map過程所生成的候選項(xiàng)集中每一項(xiàng)的計(jì)數(shù)通過Reduce函數(shù)將相同項(xiàng)的局部計(jì)數(shù)進(jìn)行相加,并把滿足用戶最小支持度的那部分寫入到文件中的過程,如圖3所示。

        由圖3可以看出,Map()函數(shù)在處理數(shù)據(jù)的過程時(shí),它首先統(tǒng)計(jì)每個(gè)項(xiàng)的數(shù)量,再對每個(gè)存在的項(xiàng)記錄一次;而Reduce()函數(shù)則僅用于匯總候選集項(xiàng)的數(shù)量,其偽代碼為:

        public void reduce(Candidate key, Iterablevalues, Context context) throws IOException, InterruptedException {

        IntWritable result = new IntWritable();

        int sum = 0;

        對候選集中相同的項(xiàng)進(jìn)行計(jì)數(shù)

        for (IntWritable val : values) {

        sum += val.get(); }

        if ((double) sum >= supportCount) {

        result.set(sum);

        context.write(key, result); }

        }

        4 Apriori_MR實(shí)驗(yàn)和結(jié)果分析

        以下所用到的實(shí)驗(yàn)數(shù)據(jù)是由人工數(shù)據(jù)合成工具(IBM Quest Market-Basket Synthetic Data Generator)生成的,它是關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘?qū)嶒?yàn)中經(jīng)常用到的工具。通過數(shù)據(jù)對比實(shí)驗(yàn)和節(jié)點(diǎn)對比實(shí)驗(yàn)來驗(yàn)證該算法是否具有高效性。

        4.1 數(shù)據(jù)對比實(shí)驗(yàn)

        本研究使用了集群里的9個(gè)節(jié)點(diǎn)做數(shù)據(jù)測試,數(shù)據(jù)記錄以文件的形式進(jìn)行存放,其最小支持度均設(shè)為70%,在計(jì)算節(jié)點(diǎn)不變而數(shù)據(jù)量變化的情況下進(jìn)行多組實(shí)驗(yàn)后兩種算法的對照結(jié)果如圖4所示。

        由圖4可以看出,當(dāng)數(shù)據(jù)量在一百萬條記錄期間時(shí),基于MapReduce框架的Apriori算法和經(jīng)典的Apriori算法所用時(shí)間相差不大,然而,隨著數(shù)據(jù)量的增加,程序運(yùn)行的時(shí)間差距逐漸拉大。產(chǎn)生這種現(xiàn)象的主要原因是,當(dāng)數(shù)據(jù)量較少時(shí),通信開銷所占總運(yùn)行時(shí)間比例相對較大,隨著數(shù)據(jù)量的增多,處理數(shù)據(jù)的時(shí)間占總運(yùn)行時(shí)間比例上升,通信開銷則可以忽略不計(jì)。而且在集群環(huán)境下可以并發(fā)處理數(shù)據(jù),加快了數(shù)據(jù)處理速度。根據(jù)數(shù)據(jù)對比實(shí)驗(yàn)可以得出以下結(jié)論:Apriori_MR比傳統(tǒng)的Apriori更適合處理海量數(shù)據(jù),且隨著數(shù)據(jù)量的增加相對單機(jī)的優(yōu)勢愈發(fā)顯得明顯。

        4.2 節(jié)點(diǎn)對比實(shí)驗(yàn)

        在此實(shí)驗(yàn)中以加速比(Speedup)作為一個(gè)重要的衡量標(biāo)準(zhǔn)。加速比,指的是運(yùn)用單處理器系統(tǒng)和并行處理器系統(tǒng)來處理同一任務(wù)所消耗時(shí)間的比對關(guān)系,并通過這一對比結(jié)果衡量出串行系統(tǒng)與并行系統(tǒng)的性能差。加速比Sp定義如下:

        Sp=Ts / Tp,

        式中:Ts為串行處理時(shí)間;Tp為并行處理時(shí)間。在實(shí)驗(yàn)中把單一節(jié)點(diǎn)機(jī)上運(yùn)行的時(shí)間看做Ts,多個(gè)節(jié)點(diǎn)機(jī)上運(yùn)行的時(shí)間看做Tp。根據(jù)文獻(xiàn)[10]所提到的MapReduce所具有優(yōu)點(diǎn)之一是Hadoop集群有很好的伸縮性,能非常方便的將具有計(jì)算能力的PC機(jī)接入到集群。本實(shí)驗(yàn)將通過改變計(jì)算節(jié)點(diǎn)來測試移植后的Apriori_MR算法在進(jìn)行等量數(shù)據(jù)挖掘的時(shí)間差,分析其加速比情況。圖5顯示了1000萬條記錄在不同節(jié)點(diǎn)數(shù)集群上的測試情況,測試中數(shù)據(jù)量與支持度一直保持不變。

        由圖5可以看出,當(dāng)節(jié)點(diǎn)數(shù)小于等于3時(shí),消耗時(shí)間的差距不大,主要原因是要考慮到集群的通信開銷。然而,隨著節(jié)點(diǎn)數(shù)的增加,所花費(fèi)的時(shí)間越來越少,加速比之間的差距也越來越小,按照這種趨勢,加速比曲線會慢慢趨于平穩(wěn)上升并保持下去。根據(jù)節(jié)點(diǎn)對比實(shí)驗(yàn)可以得出如下結(jié)論:在數(shù)據(jù)量不變的情況下,當(dāng)數(shù)據(jù)節(jié)點(diǎn)大于一定數(shù)量時(shí),節(jié)點(diǎn)數(shù)越多,處理速度越快,效率越高。

        根據(jù)上述兩個(gè)對比實(shí)驗(yàn),在數(shù)據(jù)量的持續(xù)增加和節(jié)點(diǎn)數(shù)擴(kuò)展過程中,Apriori_MR算法在數(shù)據(jù)處理效率和擴(kuò)展方面表現(xiàn)出良好的性能以及良好的外延性。因此,可以得出如下結(jié)論,將傳統(tǒng)的Apriori算法移植到云計(jì)算平臺上進(jìn)行大數(shù)據(jù)挖掘處理不僅是高效的而且也是行得通的。

        5 結(jié)束語

        云計(jì)算目前已經(jīng)是全球最具有發(fā)展?jié)摿Φ男畔㈩惣夹g(shù)之一,如何高效地將傳統(tǒng)的數(shù)據(jù)挖掘算法移植到云計(jì)算平臺上,已成為時(shí)下最流行研究的核心領(lǐng)域之一。本文從分析經(jīng)典的Apriori算法基礎(chǔ)入手,結(jié)合云計(jì)算平臺和大數(shù)據(jù)分布式處理技術(shù)對該算法加以改進(jìn)并移植,能有效地解決傳統(tǒng)意義上Apriori算法在數(shù)據(jù)挖掘過程中遇到的諸多客觀問題。并通過實(shí)驗(yàn)數(shù)據(jù)、圖形分析證實(shí)了Apriori_MR算法要比傳統(tǒng)的Apriori算法在性能上優(yōu)越許多,該算法的成功移植還進(jìn)一步為移植更高效的數(shù)據(jù)挖掘算法提供了可靠的參考。

        參考文獻(xiàn):

        [1] 習(xí)慧丹. 關(guān)聯(lián)規(guī)則挖掘優(yōu)化方法研究[J]. 計(jì)算機(jī)與數(shù)字工程,2012,40(5):31-33.

        [2] 涂新莉,劉波,林偉偉. 大數(shù)據(jù)研究綜述[J]. 計(jì)算機(jī)應(yīng)用研究,2014,31(6):1612-1616,1623.

        [3] 張濱,陳吉榮,樂嘉錦. 大數(shù)據(jù)管理技術(shù)研究綜述[J]. 計(jì)算機(jī)應(yīng)用與軟件,2014,31(11):1-5,11.

        [4] GONCALVES C,ASSUNCAO L,CUNHA J. Data analytics in the cloud with flexible MapReduce workflows[C]//Proceeding of the 2012 IEEE 4th International Conference on Cloud Computing Technology and Science. Taipei:[s.n.],2012:427-434.

        [5] 毛國君,段立娟,王實(shí),等. 數(shù)據(jù)挖掘原理與算法[M]. 北京:清華大學(xué)出版社,2007.

        [6] 劉麗. 基于關(guān)聯(lián)規(guī)則的數(shù)據(jù)挖掘技術(shù)綜述[J]. 現(xiàn)代計(jì)算機(jī),2011,32(7):25-27.

        [7] 段艷明,肖輝輝. 改進(jìn)Apriori算法處理海量數(shù)據(jù)的研究[J]. 電腦與信息技術(shù),2013,21(1):22-24.

        [8] 董西成. Hadoop技術(shù)內(nèi)幕-深入解析MapReduce架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理[M]. 北京:機(jī)械工業(yè)出版社,2013.

        [9] KOVACS F,ILLES J.Frequent itemset mining on hadoop[C]//Proceeding of the 2013 IEEE 9th International Conference on Computational Cybernetics. Tihany,Hungary,2013:241-245.

        [10] 丁祥武,李清炳,樂嘉錦. 使用MapReduce構(gòu)建列存儲數(shù)據(jù)的索引[J]. 計(jì)算機(jī)應(yīng)用與軟件,2014,31(2):24-28.

        猜你喜歡
        云計(jì)算數(shù)據(jù)挖掘
        探討人工智能與數(shù)據(jù)挖掘發(fā)展趨勢
        基于并行計(jì)算的大數(shù)據(jù)挖掘在電網(wǎng)中的應(yīng)用
        電力與能源(2017年6期)2017-05-14 06:19:37
        數(shù)據(jù)挖掘技術(shù)在中醫(yī)診療數(shù)據(jù)分析中的應(yīng)用
        志愿服務(wù)與“互聯(lián)網(wǎng)+”結(jié)合模式探究
        云計(jì)算與虛擬化
        基于云計(jì)算的移動學(xué)習(xí)平臺的設(shè)計(jì)
        實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
        云計(jì)算中的存儲虛擬化技術(shù)應(yīng)用
        科技視界(2016年20期)2016-09-29 13:34:06
        一種基于Hadoop的大數(shù)據(jù)挖掘云服務(wù)及應(yīng)用
        數(shù)據(jù)挖掘的分析與探索
        河南科技(2014年23期)2014-02-27 14:18:43
        亚洲AV秘 无码一区二区三区1| 国产精品久久久久久人妻无| 麻豆╳╳╳乱女另类| 国产成人无码区免费网站| 制服无码在线第一页| 精品黑人一区二区三区久久hd| 精品香蕉一区二区三区| 国产精品无码a∨精品影院| 在线视频一区二区日韩国产| 久久最黄性生活又爽又黄特级片| 男女视频在线观看一区| 少妇被啪出水在线视频| 狠狠色噜噜狠狠狠777米奇| 狠狠色综合网站久久久久久久| 在线观看亚洲精品国产| 白白色日韩免费在线观看 | 欧美激情在线播放| 香蕉久久人人97超碰caoproen| 国产成人一区二区三区影院免费| 亚洲一区二区精品在线| 狠狠噜狠狠狠狠丁香五月| 一二三四在线视频社区3| 国产一区二区在线观看我不卡 | 少妇被搞高潮在线免费观看| 亚洲国产女同在线观看| 一本无码中文字幕在线观| 久久久久久人妻一区二区三区| 国内精品久久久久久久久蜜桃| 丝袜美腿av免费在线观看| 国产精品女同一区二区软件| 亚洲人成网网址在线看| 国语对白做受xxxxx在线中国| 亚洲精品无人区一区二区三区| 中文字幕有码人妻在线| 国产成人无码一区二区在线播放 | 黄色毛片视频免费| 全程国语对白资源在线观看 | 羞涩色进入亚洲一区二区av| 亚洲午夜精品一区二区| 国产精品va在线播放我和闺蜜| 第九色区Aⅴ天堂|