《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Hadoop的C4.5決策樹分類算法并行化
基于Hadoop的C4.5決策樹分類算法并行化
來源:微型機與應用2013年第12期
林樹地,吳揚揚
(華僑大學 計算機科學與技術學院,福建 廈門361000
摘要: 通過研究各種決策樹分類算法的并行方案后,并行設計C4.5算法。同時根據Hadoop云平臺的MapReduce編程模型,詳細描述C4.5并行算法在MapReduce編程模型下的實現及其執行流程。最后,對輸入的海量文本數據進行分類,驗證了算法的高效性和擴展性。
Abstract:
Key words :

摘  要: 通過研究各種決策樹分類算法的并行方案后,并行設計C4.5算法。同時根據Hadoop云平臺的MapReduce編程模型,詳細描述C4.5并行算法在MapReduce編程模型下的實現及其執行流程。最后,對輸入的海量文本數據進行分類,驗證了算法的高效性和擴展性。
關鍵詞: 云計算;Hadoop;MapReduce;數據分類;C4.5算法;并行

    隨著信息技術的高速發展,人們積累的數據量急劇增長,如何從海量數據中提取有用的知識成為當務之急。數據挖掘應運而生,它是一個從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的人們事先不知道的但又是潛在有用的信息和知識的過程[1]。然而隨著數據量的增加,數據挖掘處理海量數據的能力成為了不可忽視的問題。
    云計算是解決這個問題的有效途徑,它把大量高度虛擬化的資源管理起來,組成一個大的資源池,用來統一提供服務。云計算是最近幾年出現的一門新興技術,是并行計算、分布式計算、網格計算的發展[2],具有廣泛的應用前景。IBM、Google、微軟等眾多公司都很重視云計算技術,都快速推出了自己的云計算平臺。目前比較熱門的開源云計算平臺有:Abiquo公司的abiCloud、Amazon公司的Eucalyptus、MongoDB、Enomalism、Nimbus、Hadoop。其中Hadoop平臺是完全模仿Google體系架構做的一個開源項目,是現在應用最廣、最成熟的平臺。
    決策樹分類算法作為一個經典的數據挖掘方法,通過對大量數據的屬性值進行分析,構造決策樹,來發現數據中蘊涵的分類規則。然而,在數據增長大爆炸的時代,這些算法處理海量數據的性能總有些差強人意。云計算作為一個處理海量數據的良好途徑,將算法布置在云計算平臺中進行分布式計算是一個行之有效的方法。
    本文采用Hadoop開源云平臺,對數據集進行數據橫向和縱向劃分,分布到不同的節點對不同的屬性進行并行處理,對海量文本數據進行分類。
1 Hadoop開源云平臺
    Hadoop是Apache軟件基金會旗下的一個開源分布式平臺,以Hadoop分布式文件系統HDFS和MapReduce(Google MapReduce的開源實現)為核心,為用戶提供了系統底層細節透明的分布式基礎架構[3]。HDFS的高容錯性、高伸縮性等優點允許用戶將Hadoop部署在低廉的硬件上,MapReduce分布式編程模型允許用戶在不了解分布式系統底層細節的情況下開發并行應用程序。因此用戶可以充分利用集群的計算和存儲能力,完成海量數據的處理。
1.1 分布式文件系統HDFS
    HDFS采用了主從(Master/Slave)結構模型,一個HDFS集群由一個NameNode和若干個DataNode組成。其中NameNode作為主服務器,管理文件系統的命名空間和客戶端對文件的訪問操作;集群中的DataNode管理存儲的數據。HDFS允許用戶以文件形式存儲數據。從內部來看,文件被分成若干個數據塊,而且這若干個數據塊存放在一組DataNode上[3]。NameNode執行文件系統的命名空間操作,如打開、關閉、重命名文件或目錄等,也負責數據塊到具體DataNode的映射。DataNode負責處理文件系統客戶端的文件讀寫請求,并在NameNode的統一調度下進行數據塊的創建、刪除和復制工作。圖1所示為HDFS的體系結構。

1.2 并行編程框架MapReduce
    Hadoop上的并行應用程序開發基于MapReduce編程框架,框架由一個單獨運行在主節點上的JobTracker和運行在每個集群從節點的TaskTracker共同組成。它的原理是:利用一個輸入的key/value對集合來產生一個輸出的key/value對集合。用戶用Map和Reduce兩個函數來表達計算[3]。
    用戶自定義的Map函數接收一個輸入的key/value對,然后產生一個中間key/value對的集合。MapReduce把所有具有相同key值的value集合在一起,然后傳遞給Reduce函數。自定義的Reduce函數接收key和相關的value集合,合并這些value值,形成一個較小的value集合。
    圖2為MapReduce的數據流圖,這個過程簡而言之就是將大數據集分集為成百上千個小數據集,每個或若干個小數據集分別由集群中的一個節點進行處理并生成中間結果,然后這些中間結果又由大量的節點合并,形成最終結果。此框架下并行程序中需要3個主要函數:Map、Reduce、Main。在這個結構中,需要用戶完成的工作僅僅是根據任務編寫Map和Reduce兩個函數。

2 C4.5決策樹分類算法
    在決策樹分類算法中,最常用、最經典的是C4.5算法,它繼承了ID3算法的優點并對ID3算法進行了改進和補充。此算法描述如下[4]:
    (1)預處理樣本數據集。若存在連續取值的屬性變量,則將其進行離散化,形成決策樹的訓練集;若不存在則忽略此步。
    ①根據原始數據,分別找到該連續型屬性的最小取值a0和最大取值an+1;
    ②在區間[a0,an+1]內插入n個數值,將其等分為n+1個小區間;
    ③分別以ai(i=1,2,…,n)為分段點,將區間[a0,an+1]劃分為兩個子區間:[a0,ai],[ai+1,an+1],對應該連續型屬性變量的兩類取值,有n種劃分方式。
    (2)計算每個屬性的信息增益和信息增益率。
    ①計算屬性A的信息增益Gain(A);
    ②計算屬性A的信息增益率GainRatio(A)。對于取值連續的屬性,以ai(i=1,2,…,n)為分割點計算相應分類的信息增益率,選擇最大信息增益率對應的ai作為該屬性分類的分割點。而后選擇信息增益率最大的屬性作為當前的屬性節點,得到決策樹的根節點。
    (3)根節點屬性的每一個取值對應一個子集,對樣本子集遞歸執行步驟(2),直到劃分的每個子集中的數據在分類屬性上取值都相同,或者沒有剩余屬性可以進一步劃分數據,或者給定的分支中沒有數據,便停止劃分,生成決策樹。
    (4)根據生成的決策樹提取分類規則,對新的數據集進行分類。
3 C4.5算法并行化
    本文結合數據橫向和縱向劃分方法,以提高并行效率。具體設計思想如下:
    Map階段:主要任務是處理輸入的1/M訓練樣本集,掃描每條記錄,將其格式化為<key,value>對。具體格式為key=屬性S,value=<對應屬性S的值s,所屬類別c,原表中此記錄的id>。格式化后即可進行Map操作,每個Map任務為劃分歸類具有相同key的鍵值對,寫到相應文件,由partition用模計算將各個文件分配到指定的Reduce上,即將相同的key分配到同一個Reduce節點上,如圖3所示。

      Reduce階段:主要任務是處理Map輸出的<key,value>鍵值對。對于具有連續值的屬性,先從小到大排序屬性值,生成直方圖,用來記錄該屬性對應記錄的類分布,初始化為0,每個Reduce任務都計算分割點的信息增益率,并及時更新直方圖。對于離散的屬性,不需要排序,也無需更新直方圖,第一次掃描數據Map的輸出記錄時,生成相對應的直方圖,計算各子節點的信息增益率。每個Reduce節點都將計算得到各自屬性列的信息增益率和分裂點,根據分裂點分割屬性列表,用列表的索引號生成記錄所在節點的哈希表,存儲分裂點兩側的數據記錄。哈希表格式為<key,value>鍵值對,value=<樹節點號NodeID,當前樹節點號的子節點號SubNodeID>,其中SubNodeID為0表示左節點,1表示右節點。哈希表中的第N條記錄表示原數據中第N條記錄所劃分到的樹節點號。最后根據哈希表各分節點對其他屬性列表進行分割,并生成屬性直方圖。
    主程序算法設計描述如下:
    Main()
    {
       輸入訓練樣本集T;
       生成有序的屬性列表A和直方圖G;
       創建節點隊列Q,首節點N為訓練樣本集所有數據
    記錄;
       while(隊列不為空)
        {
           取出隊列首節點;
           while(節點數據樣本不屬于同一類&&還有屬性
      可操作&&樣本數據不是太少)
           {
           將節點中的訓練樣本集進行水平劃分,分割為
      M份,由InputFormat完成,將數據劃分為InputSplit發
      送到各個Map節點進行處理,這里同時也進行垂直
      分割;
           Map操作;
           Reduce操作,以Map節點的輸出中間結果作為
      輸入;
           根據各個Reduce節點返回的輸出結果,選擇最
      大信息增益的屬性,以其分裂點和哈希表分裂原始數
      據集,生成子節點N1和N2,放入隊列Q;
           }
       }
    }
    例如,以ALLElectronic顧客數據為訓練集,Hadoop默認參數進行分片,其中水平和垂直分割過程如圖4所示。


    對ALLElectronic顧客數據集進行分類,顧客數據集的屬性分別為ID、年齡、收入水平、學生身份標志、信用卡水平。根據這些屬性對顧客消費潛力進行評估,將顧客分為會消費顧客和不會消費顧客,訓練產生的決策樹模型如圖5所示,用此模型對數據進行分類。

4 實驗
    本實驗主要驗證算法的高效性和擴展性。實驗數據為UCI數據集Bank Marketing,用來預測用戶是否會定期存款。該數據集屬于商業領域,具有多變量的特征,包括客戶的年齡、工作、婚姻情況、學歷、年均收入、房貸、支出等17個屬性,而且是實數,有45 211個元組,沒有缺省值,經常用來完成分類的任務。
    實驗環境:軟件方面:采用Hadoop-0.20.2版本,Ubuntu Linux 9.04系統,Eclipse3.3.2開發工具,Jdk 7.0;(上接第87頁)
硬件方面:7臺PC(其中1臺作為主機,其他6臺作為從機),每臺PC的配置為:CPU i3,內存1 GB,網卡100 Mb/s。
    實驗內容:采用復制的手段將Bank Marketing擴大,產生分別為100 MB、200 MB、400 MB、700 MB、1 GB大小的數據集。測試各個數據集在不同數量的集群中算法的運行時間,從機集群數量分別設為1、2、4、6臺。運行結果統計如圖6所示。

    數據的處理時間主要花費在數據的分割和記錄的格式化過程,由圖6可見,隨著集群數量的增大,處理時間有效地縮短了。具體原因分析如下:MapReduce對數據的分割一般以64 MB為一基本單位。例如,700 MB大小的數據可分割為11個數據塊,如果用1臺機器去處理,需要計算11次;用2臺處理,需要計算6次;4臺處理則只要計算3次;6臺則只要計算2次。因此可以得出此算法有很高的高效性和擴展性。
    決策樹分類算法有廣泛的應用領域,如客戶關系管理、專家系統、語音識別、模式識別等。C4.5并行化決策樹分類算法與傳統決策樹分類算法相比,有較大優勢,可以支持海量數據的處理。同時將其運行在Hadoop云計算平臺上,能夠高效地對大規模海量數據進行分類。
參考文獻
[1] 房祥飛.基于決策樹的分類算法的并行化研究及應用[D]. 濟南:山東師范大學,2007.
[2] 劉鵬.云計算[M].北京:電子工業出版社,2010.
[3] 陸嘉恒.Hadoop實戰[M].北京:機械工業出版社,2011.
[4] 田金蘭,趙慶玉.并行決策樹算法的研究[J].計算機工程與應用,2001,16(5):17-20.

此內容為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>
          欧美成人tv| 宅男噜噜噜66国产日韩在线观看| 欧美a级一区| 亚洲欧洲一区二区在线播放| 欧美日韩另类在线| 永久免费毛片在线播放不卡| 国产精品亚洲成人| 亚洲黄色有码视频| 国产精品v欧美精品∨日韩| 一本大道久久a久久综合婷婷| 欧美另类视频| 国产精品成人一区二区网站软件| 久久久久久一区二区三区| 亚洲高清在线| 午夜精品电影| 久久在线免费观看| 亚洲免费精品| 久久久久免费视频| 国产精品视频第一区| 欧美亚洲动漫精品| 久久综合九色综合网站| 在线播放豆国产99亚洲| 午夜精品视频在线观看一区二区| 黄色av成人| 亚洲黄页视频免费观看| 亚洲一区二区高清视频| 亚洲理论在线| 国产乱码精品一区二区三区不卡| 亚洲一区综合| 亚洲在线中文字幕| 国产亚洲一区二区三区在线播放| 欧美不卡福利| 国产精品乱码人人做人人爱| 久久久人人人| 亚洲黄色av一区| 国产一区二区在线免费观看| 欧美欧美午夜aⅴ在线观看| 午夜视频在线观看一区| 国产精品视频免费在线观看| 欧美主播一区二区三区美女 久久精品人| 老司机午夜精品视频在线观看| 欧美人与性动交α欧美精品济南到| 亚洲国产精品久久久久秋霞蜜臀| 红杏aⅴ成人免费视频| 亚洲日韩欧美视频一区| 久久久久久久久伊人| 欧美伦理91i| 久久久久久久高潮| 亚洲区国产区| 久久精品日产第一区二区| 国产精品一二一区| 国产精品久久久久久福利一牛影视| 亚洲一区中文字幕在线观看| 欧美激情乱人伦| 亚洲一二三级电影| 欧美激情精品久久久久久大尺度| 老司机久久99久久精品播放免费| 亚洲毛片在线免费观看| 黑人中文字幕一区二区三区| 亚洲精品五月天| 在线 亚洲欧美在线综合一区| 欧美高清在线观看| 欧美激情久久久| 欧美午夜不卡影院在线观看完整版免费| 蜜臀99久久精品久久久久久软件| 久久久人成影片一区二区三区| 欧美一级欧美一级在线播放| 欧美精品乱码久久久久久按摩| 国内精品视频久久| 国产精品igao视频网网址不卡日韩| 免费观看日韩av| 亚洲一区二区毛片| 欧美激情aaaa| 午夜精品成人在线视频| 久久精品国产欧美亚洲人人爽| 国产日本欧美视频| 国产精品99久久久久久久久久久久| 亚洲欧美成人一区二区三区| 欧美午夜精品理论片a级大开眼界| 欧美一区在线看| 欧美专区日韩视频| 99精品视频一区二区三区| 一本色道久久| 久久国产日韩欧美| 欧美激情aaaa| 欧美亚洲一区| 久久精品人人做人人爽| 久久精品综合| 伊人精品视频| 红桃视频国产一区| 国产日本欧美在线观看| 黄网站免费久久| 国产一区二区日韩| 午夜精品久久久久久久久久久久| 性久久久久久久久久久久| 新狼窝色av性久久久久久| 欧美片第一页| 亚洲国产天堂久久综合网| 亚洲国产精品ⅴa在线观看| 欧美性理论片在线观看片免费| 国产精品日韩欧美一区二区| 欧美成人精精品一区二区频| 夜夜嗨av一区二区三区四季av| 欧美大秀在线观看| 欧美国产日韩一二三区| 亚洲天堂视频在线观看| 欧美三级电影精品| 亚洲国产美女久久久久| 欧美亚一区二区| 久久青草久久| 国产精品久久久久影院亚瑟| 欧美一区二区黄| 欧美中文字幕久久| 欧美日韩中文字幕在线| 亚洲深夜激情| 香蕉久久精品日日躁夜夜躁| 欧美日韩美女一区二区| 亚洲性感美女99在线| 日韩亚洲一区二区| 亚洲视频每日更新| 蘑菇福利视频一区播放| 欧美一区二区三区免费观看视频| 久久香蕉国产线看观看av| 欧美日本一区二区高清播放视频| 亚洲综合色婷婷| 欧美日韩中文另类| 老色鬼久久亚洲一区二区| 国产精品美女久久久久久久| 中文av一区特黄| 亚洲尤物影院| 精品成人a区在线观看| 欧美一区二区三区四区夜夜大片| 久久精品99久久香蕉国产色戒| 激情久久中文字幕| 国产精品日本一区二区| 亚洲美女精品久久| 在线一区二区三区四区五区| 91久久久久久国产精品| 久久精品免视看| 欧美视频在线观看一区二区| 久久免费偷拍视频| 亚洲春色另类小说| 国产欧美另类| 一区二区三区四区国产精品| 亚洲日韩中文字幕在线播放| 欧美精品在线观看91| 亚洲高清一区二区三区| 欧美精品一区二区三区在线播放| 国产午夜精品在线观看| 久久看片网站| 男人的天堂成人在线| 国产视频一区免费看| 亚洲高清123| 亚洲欧洲av一区二区三区久久| 欧美日韩成人网| 亚洲精品视频在线播放| 最新国产成人av网站网址麻豆| 欧美在线3区| 国产精品海角社区在线观看| 亚洲乱亚洲高清| 欧美成人一二三| 亚洲国产三级在线| 亚洲男人的天堂在线aⅴ视频| 亚洲日本va午夜在线电影| 国产亚洲制服色| 欧美色图五月天| 美女国产一区| 久久全国免费视频| 一区二区在线不卡| 亚洲欧美激情在线视频| 亚洲狼人精品一区二区三区| 欧美亚洲日本网站| 一区视频在线播放| 久久亚洲免费| 欧美日韩一区二区欧美激情| 久久精品国产精品亚洲综合| 欧美日韩伊人| 亚洲欧美日韩中文视频| 六月婷婷久久| 噜噜噜在线观看免费视频日韩| 久久久久88色偷偷免费| 999亚洲国产精| 欧美另类久久久品| 欧美在线视频a| 欧美激情aⅴ一区二区三区| 日韩亚洲欧美中文三级| 欧美激情精品久久久| 狠狠色综合网站久久久久久久| 亚洲日本一区二区三区| 国产精品你懂的| 欧美日韩一区二区免费视频| 久久久久久一区二区| 久久久噜噜噜久久中文字免| 国产精品一区一区三区| 老鸭窝91久久精品色噜噜导演| 国产精品久久久久久模特| 美女国产精品| 国产欧美韩日| 伊人夜夜躁av伊人久久| 精品1区2区3区4区| 欧美激情中文字幕一区二区| 午夜欧美大片免费观看| 99精品久久| 国产精品亚洲а∨天堂免在线| 国产欧美亚洲视频| 狠狠色噜噜狠狠色综合久| 国产精品va在线播放我和闺蜜| 久久精品免视看| 欧美日韩国产123区| 欧美一区二区三区在线免费观看| 亚洲精品九九| 亚洲福利在线观看| 韩国成人精品a∨在线观看| 久久精品国产欧美激情| 国产亚洲激情视频在线| 欧美性猛交xxxx免费看久久久| 欧美freesex交免费视频| 久久国产精品免费一区| 亚洲男人第一网站| 国产精品亚洲а∨天堂免在线| 欧美一区二区黄色| 欧美一区二区三区视频| 亚洲天天影视| 亚洲午夜精品一区二区三区他趣| 国产精品福利在线| 日韩视频一区二区三区在线播放| 欧美人妖在线观看| 久久国产精品亚洲va麻豆| 国产精品一区二区三区乱码| 性伦欧美刺激片在线观看| 欧美韩日视频| 日韩一级裸体免费视频| 欧美日韩性生活视频| 99精品国产在热久久下载| 亚洲裸体俱乐部裸体舞表演av| 免费美女久久99| 国产视频亚洲精品| 欧美体内she精视频| 久久午夜国产精品| 国产精品色午夜在线观看| 亚洲性视频网站| 欧美fxxxxxx另类| 国产综合色在线视频区| 欧美在线一级视频| 国产精品综合色区在线观看| 一区二区福利| 国产乱人伦精品一区二区| 欧美日韩精品免费观看| 亚洲人成亚洲人成在线观看| 久久久99精品免费观看不卡| 免费观看亚洲视频大全| 欧美一区二区三区在线视频| 国模叶桐国产精品一区| 亚洲在线播放| 国产精品极品美女粉嫩高清在线| 亚洲性人人天天夜夜摸| 欧美网站大全在线观看| 伊人狠狠色j香婷婷综合| 久久久99精品免费观看不卡| 欧美久久久久久久| 欧美有码在线观看视频| 欧美日韩国产小视频在线观看| 欧美精品一区二区三区四区| 久久人人爽国产| 欧美福利影院| 国产麻豆日韩| 久久久国产精品亚洲一区| 日韩亚洲欧美在线观看| 亚洲免费视频在线观看| 亚洲女同同性videoxma| 亚洲伊人久久综合| 国产日韩av一区二区| 欧美自拍偷拍午夜视频| 久久精品国产精品亚洲综合| 亚洲午夜三级在线| 欧美成人日本| 国产精品久久福利| 国内在线观看一区二区三区| 久久精品噜噜噜成人av农村| 国产精品视频xxx| 怡红院精品视频在线观看极品| 亚洲一区二区视频在线观看| 99视频超级精品| 亚洲黄色三级| 久久精品国产久精国产爱| 国产精品毛片一区二区三区| 久久综合久久综合久久综合| 国产日韩在线亚洲字幕中文| 一区二区三区四区国产| 亚洲国产精品精华液网站| 亚洲日本中文字幕免费在线不卡| 99精品免费视频| 亚洲永久免费| 国产午夜精品一区二区三区欧美| 国产一区亚洲一区| 一区二区三区久久| 欧美成人乱码一区二区三区| 国产视频在线观看一区二区| 国产精品久在线观看| 亚洲欧美日韩国产综合在线| 国产精品99久久久久久久久| 国产农村妇女毛片精品久久莱园子| 亚洲国产成人精品久久久国产成人一区| 欧美激情bt| 久久精品亚洲乱码伦伦中文| 国产精品视频九色porn| 久久国产福利国产秒拍| 久久国产视频网| 久久久综合香蕉尹人综合网| 欧美性猛交一区二区三区精品| 性欧美办公室18xxxxhd| 久久久免费精品| 久久久一区二区三区| 玖玖视频精品| 久久精品亚洲国产奇米99| 在线观看亚洲视频啊啊啊啊| 亚洲一区久久久| 亚洲国产日韩一级| 国产精品婷婷午夜在线观看| 亚洲国产婷婷香蕉久久久久久99| 亚洲黄色一区| 久久久久91| 欧美高清视频一二三区| 欧美偷拍一区二区| 麻豆精品国产91久久久久久| 欧美日韩亚洲免费| 欧美人与性禽动交情品| 国产婷婷97碰碰久久人人蜜臀|