







摘" 要: 為了應對大數據環境下圖書館個性化信息服務的發展趨勢,提供更加精準的用戶服務,構建基于Hadoop云計算平臺的圖書館數據挖掘系統,并設計一種新型混合決策樹算法。首先,設計包含4個層次的數據挖掘系統架構。然后,在算法層提出一種采用混合策略的決策樹算法,該算法結合分布式改進的SPRINT算法和并行化的樸素貝葉斯算法,以便滿足HDFS和MapReduce的運作方式,從而能夠在Hadoop平臺上進行實現。Hadoop集群環境的用戶信息測試結果表明,相比單一的SPRINT算法和樸素貝葉斯算法,提出的新型混合決策樹算法具有最佳的數據挖掘分類性能。
關鍵詞: 大數據; 云計算; Hadoop; SPRINT; 樸素貝葉斯; 決策樹
中圖分類號: TN911.2?34; TP393" " " " " " " " " "文獻標識碼: A" " " " " " " " " " 文章編號: 1004?373X(2019)21?0036?05
Abstract: In order to deal with the development trend of library personalized information service in big data environment, a library user information mining system based on Hadoop cloud computing platform is constructed, and a new hybrid decision tree algorithm is designed. The data mining system architecture consisting of four levels (computing storage layer, Hadoop platform layer, algorithm layer and user interaction layer) is designed, and then, a decision tree algorithm based on hybrid strategy is proposed in the algorithm layer. The algorithm combines the improved distributed SPRINT algorithm and the parallelized naive Bayesian algorithm to meet the operation mode of HDFS and MapReduce, so that it can be used in Hadoop, and implemented on the Hadoop platform. The results of user information testing in Hadoop cluster environment show that the new hybrid decision tree algorithm has the best data mining classification performance in comparison with the single SPRINT algorithm and naive Bayes algorithm.
Keywords: big data; cloud computing; Hadoop; SPRINT; naive Bayes; decision tree
0" 引" 言
隨著全球互聯網和現代移動網絡等技術的發展,數據呈現爆炸式增長的態勢,傳統數據庫系統己經很難滿足大數據時代的需求。云計算的出現很好地解決了此類海量數據的存儲問題,并為相關數據挖掘處理應用提供了技術支撐。然而,云計算信息數據時代的來臨,導致普通用戶在面對眾多圖書的選擇問題時無法快速找到自己需要的對象,這就是典型的圖書館個性化用戶信息服務需求。如何在海量的圖書館用戶信息中通過大數據挖掘技術尋找出符合用戶需求的結果,從而提供高精準度的個性化需求服務,是現階段圖書管理領域的研究重點和難點[1?2]。
因此,本文設計一種基于Hadoop云計算平臺的圖書館數據挖掘系統。首先,利用Hadoop平臺的海量數據存儲和分布式計算能力,設計包含4個層次(計算存儲層、Hadoop平臺層、算法層和用戶交互層)的數據挖掘系統架構。其次,為了提高數據的處理性能,本文在算法層中提出一種采用混合策略的決策樹算法,通過將SPRINT算法和樸素貝葉斯算法有效結合,并分別進行并行化處理從而能夠在Hadoop平臺上運作。測試結果驗證了所提混合算法的可行性。
1" 研究問題與主要思想描述
目前,由Google提出的分布式計算模型Hadoop是主流的云計算平臺框架,具有經濟、可靠、擴容能力強、并行性好、效率高等諸多優點[3]。Hadoop大數據平臺幫助政企、金融、教育等多個行業及領域實現了海量數據的計算存儲管理、數據深度挖掘以及品牌輿情等多樣化。為了支持對應用數據高吞吐量訪問,Hadoop采用了分布式文件系統(Hadoop Distributed File System,HDFS) [3]。此外,為了將數據分散到集群的各臺機器上,以便提高計算效率,Hadoop具有MapReduce并行運行模型。然而,傳統的串行大數據挖掘算法不能有效地在Hadoop平臺上執行,即無法應對海量數據挖掘問題。
因此,研究人員為了解決上述問題提出了許多方法。文獻[4]提出一種面向大數據挖掘的Hadoop框架K均值聚類算法,將大數據劃分成許多數據塊,在Reduce和Map階段進行加權融合。文獻[5]設計一種Hadoop下基于樸素貝葉斯分類的大數據挖掘方法,分析了MapReduce計算模型。文獻[6]通過Hadoop系統中的MapReduce模型對改進支持向量機SVM過程進行處理,提高了海量文本數據分類的效率。
但是上述單一的經典數據挖掘分類算法(如決策樹算法、支持向量機SVM等)在處理海量圖書館用戶信息數據時總顯得力不從心,無法在準確率方面獲得較好的結果。因此, 本文在圖書館用戶信息Hadoop挖掘系統中提出一種采用混合策略的決策樹算法,該算法結合了分布式改進的SPRINT算法和并行化的樸素貝葉斯算法,從而符合HDFS和MapReduce的工作模式。
2" 基于Hadoop云計算平臺的信息挖掘系統設計
2.1" 關鍵技術
Hadoop云計算平臺包含分布式文件系統HDFS和MapReduce計算模型[7]兩個關鍵技術。分布式文件系統HDFS具有一次寫入多次讀取的能力,實現了高度容錯,較大的訪問帶寬特點避免了網絡阻塞,降低了對硬件的要求,實現了一定意義上的數據批量處理。而MapReduce計算模型是Hadoop平臺實現超大規模數據并行運算的關鍵,其本質為一種軟件編程架構(模式),能夠通過Hadoop集群上的多個節點訪問HDFS上存儲的分散數據且進行并行計算,避免大量數據的復制傳輸操作,有效節約了網絡帶寬,其標準的運作方式如圖1所示[8]。
2.2" 系統框架
基于Hadoop云計算平臺的信息挖掘系統必須充分發揮HDFS和MapReduce的作用,將數據存儲和數據挖掘任務工作分配到Hadoop集群中的各個節點上。因此,本文設計的信息挖掘系統框架如圖2所示,主要包括計算存儲層、Hadoop平臺層、算法層和用戶交互層,其中算法層是研究的重點,負責快速有效地處完成數據的相應挖掘任務。
3" 提出的新型圖書館大數據挖掘算法
經過研究分析,傳統的經典數據挖掘分類算法有許多在數據挖掘系統的算法層可以實現并行化,但是單一的分類算法在處理海量圖書館用戶信息數據時仍舊存在準確率不夠理想的問題。因此本文提出一種新的混合型圖書館大數據挖掘算法,將SPRINT算法和樸素貝葉斯算法有效結合。
3.1" SPRINT算法的分布式改進
首先,要對典型的SPRINT算法[9]進行分布式改進。SPRINT算法屬于決策樹算法,但是不同于ID3、C4.5和CART等算法,在對數據樣本集判斷最佳分裂屬性的度量時使用的是Gini指標。Gini值的計算公式如下:
式中:[S]表示一個集合;[Pi]表示種類[i]出現的頻率;[n]為種類的總數。
如果將集合[S]分裂為兩個子集[S1]和[S2],則兩者之間的Gini值為:
式中:[m]表示集合[S]中數據記錄的總行數;[m1]和[m2]分別表示集合[S1]和[S2]中數據記錄的總行數。
為了有效利用圖1中MapReduce框架的映射功能(Map),需要進行分布式改進,因此,將SPRINT決策樹算法中位于相同層的所有Node樹節點的工作,映射到不同的Reducer進行分布式操作。然后,僅需不斷迭代調用過程就能夠實現所有節點的分裂,從而建立所需的決策樹。Map函數的偽代碼如下:
輸入:訓練樣本集
輸出:根據Key排序后lt;Key,valuegt;鍵值對
格式化處理;
初始化lt;Key,valuegt;值,進行combine操作;
處理后的鍵值對輸出到文件中;
3.2" 樸素貝葉斯算法的并行化
貝葉斯分類的基礎是概率推理[10],可表示為[PCx1,x2,…,xn],其中[C]表示類別變量,[X={x1,x2,…,xn}]表示屬性變量集合,[xi]為特征。根據貝葉斯定理,樸素貝葉斯概率模型的定義如下:
為了在Hadoop平臺上實現樸素貝葉斯算法,需要對其進行并行化改進。在Map階段的操作同SPRINT算法一致,而將Reduce階段分為兩個步驟。第一步需要獲取概率信息文件,即獲取每個屬性在不同類別變量中的平均值[E(X)]和標準差[D(X)]。假設連續屬性服從高斯分布,兩者的計算方式如下:
根據第一輪得到的有關概率文件,利用式(5)完成第二步的分類,得到不同類別的概率乘積并按照從小到大排序選取最小值對應的結果作為樣本類別。
3.3" 混合決策樹算法的實現
利用SPRINT算法和樸素貝葉斯算法相結合的方法實現數據挖掘分類的流程如圖3所示。可以看出,混合決策樹算法的Map階段如3.1節偽代碼所示,Reduce階段利用SPRINT算法構造決策樹,然后分別對其每個葉子節點上的數據集執行3.2節中樸素貝葉斯算法的式(6)和式(7)得到有關概率文件,最后利用計算概率乘積并按照從小到大排序,選取最小值對應的結果作為樣本類別。
4" 實驗結果與分析
4.1" 實驗環境
為了對本文提出的新型混合決策樹數據挖掘算法進行分析和驗證,進行Hadoop集群測試。虛擬機中搭建一個包含3個節點的Hadoop集群環境(1個master,2個slaves)。每個集群節點的硬件環境為: Intel Core i5 2.8 GHz處理器,4 GB內存,500 GB硬盤。軟件環境為:CentOS 6.0操作系統,Hadoop 1.0.4版本,Java JDK。
4.2" 數據預處理
實驗采用某高校中圖書管理系統的數據庫數據集。該數據集包含圖書館2018年的用戶信息1 020 513條,如表1所示。
首先要將圖書館用戶信息數據劃分為訓練集和測試集兩個部分。訓練集中的所有書籍通過人工標記分為E(計算機類)、H(英語類)、W(自動類)、A(藝術類)、C(社會類)、J(文學類)六大類,對這六類圖書進行數據泛化得到表2。
4.3" 評估指標
為了對數據挖掘分類算法的性能進行有效量化評估,本文采用三個評估指標[12]:準確率(Accuracy)、召回率(Recall)、[F]值([F]?Measure)。準確率計算公式為:
4.4" 分類性能分析
在測試數據集上進行分類實驗,基于樸素貝葉斯算法[5]、SPRINT算法[9]和本文混合決策樹數據挖掘算法的分類器結果對比如圖4~圖6所示。
從圖4~圖6可以看出,樸素貝葉斯分類算法的性能最差,SPRINT算法有所提升,本文混合決策樹數據挖掘算法的準確率最高,且綜合評估指標[F]值也最高,有效提供了更加精準的用戶服務。
5" 結" 語
本文提出一種適用于Hadoop云計算平臺的混合決策樹數據挖掘分類算法,這種算法結合了分布式改進的SPRINT算法和并行化的樸素貝葉斯算法,從而符合HDFS和MapReduce的工作模式。Hadoop集群環境的用戶信息測試結果驗證了該算法的可行性和準確性。但是在召回率指標上,相比單一分類算法,混合算法的優勢不突出。此外,算法運行時間有所增加,后續將對如何在不降低精確度的條件下,提高運行效率開展進一步研究。
參考文獻
[1] HASHEM I A T, YAQOOB I, ANUAR N B, et al. The rise of “big data” on cloud computing: review and open research issues [J]. Information systems, 2015, 47(C): 98?115.
[2] GANDOMI A, HAIDER M. Beyond the hype: big data concepts, methods, and analytics [J]. International journal of information management, 2015, 35(2): 137?144.
[3] LYU Yisheng, DUAN Yanjie, KANG Wenwen, et al. Traffic flow prediction with big data: a deep learning approach [J]. IEEE transactions on intelligent transportation systems, 2015, 16(2): 865?873.
[4] 李爽,陳瑞瑞,林楠.面向大數據挖掘的Hadoop框架K均值聚類算法[J].計算機工程與設計,2018, 39(12):142?146.
LI Shuang, CHEN Ruirui, LIN Nan. K?means clustering algorithm of Hadoop framework for large data mining [J]. Computer engineering and design, 2018, 39(12): 142?146.
[5] WU J, PAN S, ZHU X, et al. Self?adaptive attribute weighting for naive Bayes classification [J]. Expert systems with applications, 2015, 42(3): 1487?1502.
[6] 趙穎.基于改進SVM的文本混沌性分類優化技術實現[J].現代電子技術,2016,39(20):39?43.
ZHAO Ying. Realization of text chaotic classification optimization technology based on improved SVM [J]. Modern electronics technique, 2016, 39(20): 39?43.
[7] GUO Y, JIA R, JIANG C, et al. Moving Hadoop into the cloud with flexible slot management and speculative execution [J]. IEEE transactions on parallel amp; distributed systems, 2017, 28(3): 798?812.
[8] HUANG W, WANG H, ZHANG Y, et al. A novel cluster computing technique based on signal clustering and analytic hierarchy model using Hadoop [J]. Cluster computing, 2017(4): 1?8.
[9] 楊潔,黃剛.基于云計算的SPRINT算法研究[J].計算機技術與發展,2017,27(3):108?112.
YANG Jie, HUANG Gang. Research on SPRINT algorithm based on cloud computing [J]. Computer technology and deve?lopment, 2017, 27(3): 108?112.
[10] 張晨陽,馬志強,劉利民,等.Hadoop下基于粗糙集與貝葉斯的氣象數據挖掘研究[J].計算機應用與軟件, 2015(4):72?76.
ZHANG Chenyang, MA Zhiqiang, LIU Limin, et al. Research on meteorological data mining based on rough set and Bayesian under Hadoop [J]. Computer application and software, 2015(4): 72?76.
[11] WOLFSON J, BANDYOPADHYAY S, ELIDRISI M, et al. A naive Bayes machine learning approach to risk prediction using censored, time?to?event data [J]. Statistics in medicine, 2015, 34(21): 2941?2957.
[12] BO Y, LEI Y, BEI Y. Distributed multi?human location algorithm using naive Bayes classifier for a binary pyroelectric infrared sensor tracking system [J]. IEEE sensors journal, 2015, 16(1): 216?223.