2017-04-10 16:46:19

  盧龍1,2,王靜宇1,王超3

  (1. 內蒙古科技大學 信息工程學院,內蒙古 包頭 014010;2. 中國北方稀土(集團)

  高科技股份有限公司,內蒙古 包頭 014010;3. 中國移動通信集團山東有限公司萊蕪分公司,山東 萊蕪 271100)

       摘要:針對傳統貝葉斯分類算法在處理海量數據時存在的運行時間長和分類準確率低等問題,在對傳統的貝葉斯分類算法和雲計算進行了深入研究後,提出了麵向雲計算環境的基於 MapReduce模型的樸素貝葉斯分類算法。該算法實現了樸素貝葉斯分類算法的並行化,實現了大規模數據在雲計算環境下的集群中進行貝葉斯分類處理。實驗結果證明,該算法具有較高的分類準確率,在運行時間和加速比方麵也有很好的效果。

  關鍵詞:雲計算;樸素貝葉斯算法;MapReduce

  中圖分類號:TP393文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.06.003

  引用格式:盧龍,王靜宇,王超. 麵向雲計算的數據挖掘分類算法研究[J].微型機與應用,2017,36(6):7-9,12.

0引言

  *基金項目:國家自然科學基金項目(61662056,61462069 );內蒙古自然科學基金(2015MS0622,2016MS0609)隨著雲計算、大數據等信息技術的快速發展,數據量呈現出了爆炸式的增長,數量級別從原來的MB級別迅猛增長到TB級別甚至是PB級別,這一嚴峻問題的出現給數據挖掘技術帶來了前所未有的巨大挑戰,海量數據的積累讓人們有更多的數據可以利用,從這些海量數據中提取出對用戶有價值的數據變得尤為重要。傳統的數據挖掘算法通常要做的處理是先把數據從外存讀入內存,然後進行分析處理,但是現如今數據量增大到驚人的級別時,由於對CPU、內存等資源的急劇消耗,導致算法執行時間顯著增加,算法的性能大幅度下降,根本無法達到用戶的預期結果。在對海量數據進行挖掘處理時,要想獲得理想結果,采用的數據挖掘算法必須要呈現出良好的可伸縮性和可並行性。雲計算可以提供一種用於實現並行計算的模型[1],它將大規模數據的存儲和計算能力均勻地分散到集群中,這些集群是由若幹機器構成的,由許多的廉價機器搭建,在很大程度上降低了成本。雲計算平台所具有的高速處理海量數據和計算海量數據這兩大優勢,更是為提高數據挖掘算法的效率和準確性提供了有力支撐,使傳統的數據挖掘算法麵臨的難題得以解決。

  數據分類作為一種重要的數據分析形式,常出現在數據挖掘領域中。目前比較常用的分類算法主要有:樸素貝葉斯分類算法、決策樹分類算法、人工神經網絡等。其中,在機器學習和數據挖掘研究領域,樸素貝葉斯分類算法是比較重要和常用的數據處理方法之一。樸素貝葉斯分類算法在簡單、高效、分類效果穩定這個三個方麵優勢比較明顯,它還具有牢固的理論基礎,在實際應用中得到廣泛的重視和應用。近年來,各國學者對貝葉斯分類方法展開了深入研究。

  文獻[2]提出了一種基於K?means的貝葉斯分類算法,該算法主要思想是利用K?means聚類算法對原始數據集進行聚類分析,計算缺失數據子集中的每條記錄與k個簇重心之間的相似度,把該記錄分配到與其相似度最大的一個簇, 用該簇中相應的屬性均值來填充記錄的缺失值,再用樸素貝葉斯分類算法對處理後的數據集進行分類,實驗表明,在分類準確率上,與傳統樸素貝葉斯分類算法相比,該算法分類準確率較高。文獻[3]是基於Hadoop平台提出的樸素貝葉斯數據分類算法,該算法對特征選擇方法進行了改進,並利用MapReduce編程模型實現了樸素貝葉斯並行分類算法。實驗結果表明,該算法不僅提高了分類的正確率,而且在訓練和測試集規模較大時體現出了很好的加速比,性能方麵也有很大的提高。文獻[4]則是通過對Hadoop基礎平台MapReduce並行化編程模型進行深入研究後,對傳統的樸素貝葉斯分類算法進行了MapReduce並行化改進,用以提高樸素貝葉斯分類算法對大規模數據處理的能力和計算效率。實驗表明: 改進後樸素貝葉斯分類算法在加速比和對中文網頁進行分類識別率上都有很大的改進。

  本文在對傳統的貝葉斯分類算法和雲計算相關技術深入研究後,提出了一種麵向雲計算並基於 MapReduce模型的貝葉斯分類算法,利用提出的麵向雲計算的貝葉斯分類方法,對大規模數據在雲計算環境下的集群中進行貝葉斯分類處理,通過實驗證明該方法具有較高的執行效率。通過對大規模數據在雲計算環境下的集群中進行貝葉斯分類處理,並對比大規模數據在不同節點上的運行時間和加速比可知,本文提出的算法具有較高的執行效率,平均分類正確率顯著提高,適合用於海量數據的快速離散化處理。

1相關工作

  1.1MapReduce編程模型

  MapReduce是一種並行編程模型[5],采用的是主(Master)/從(Slave)結構,在處理大規模數據時,將其分塊後,分配到由普通機器組成的超大集群上並發執行。MapReduce編程模型主要分為兩個階段:Map和Reduce。Map階段指的是映射,Reduce指的是規約;Map函數處理數據的形式是一個給定的鍵值對<key1,value1>,處理後生成另一個鍵值對< key2,value2>。隨後MapReduce模型將Map階段輸出的相同的key2鍵值進行合並,形成一個新的鍵值對<key2,lsit(v2)>。Reduce函數則處理Map階段合並的鍵值對<key2,lsit(v2)>,處理後形成一個形似<key3,value3>的鍵值對,並將這個鍵值對寫入文件。

第1頁  第2頁  第3頁  

http://www.autooo.net/autooo/elec/news/2017-04-10/171623.html