摘" 要: 為了應對大數(shù)據(jù)環(huán)境下圖書館個性化信息服務的發(fā)展趨勢,提供更加精準的用戶服務,構(gòu)建基于Hadoop云計算平臺的圖書館數(shù)據(jù)挖掘系統(tǒng),并設計一種新型混合決策樹算法。首先,設計包含4個層次的數(shù)據(jù)挖掘系統(tǒng)架構(gòu)。然后,在算法層提出一種采用混合策略的決策樹算法,該算法結(jié)合分布式改進的SPRINT算法和并行化的樸素貝葉斯算法,以便滿足HDFS和MapReduce的運作方式,從而能夠在Hadoop平臺上進行實現(xiàn)。Hadoop集群環(huán)境的用戶信息測試結(jié)果表明,相比單一的SPRINT算法和樸素貝葉斯算法,提出的新型混合決策樹算法具有最佳的數(shù)據(jù)挖掘分類性能。
關鍵詞: 大數(shù)據(jù); 云計算; 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" 引" 言
隨著全球互聯(lián)網(wǎng)和現(xiàn)代移動網(wǎng)絡等技術(shù)的發(fā)展,數(shù)據(jù)呈現(xiàn)爆炸式增長的態(tài)勢,傳統(tǒng)數(shù)據(jù)庫系統(tǒng)己經(jīng)很難滿足大數(shù)據(jù)時代的需求。云計算的出現(xiàn)很好地解決了此類海量數(shù)據(jù)的存儲問題,并為相關數(shù)據(jù)挖掘處理應用提供了技術(shù)支撐。然而,云計算信息數(shù)據(jù)時代的來臨,導致普通用戶在面對眾多圖書的選擇問題時無法快速找到自己需要的對象,這就是典型的圖書館個性化用戶信息服務需求。如何在海量的圖書館用戶信息中通過大數(shù)據(jù)挖掘技術(shù)尋找出符合用戶需求的結(jié)果,從而提供高精準度的個性化需求服務,是現(xiàn)階段圖書管理領域的研究重點和難點[1?2]。
因此,本文設計一種基于Hadoop云計算平臺的圖書館數(shù)據(jù)挖掘系統(tǒng)。首先,利用Hadoop平臺的海量數(shù)據(jù)存儲和分布式計算能力,設計包含4個層次(計算存儲層、Hadoop平臺層、算法層和用戶交互層)的數(shù)據(jù)挖掘系統(tǒng)架構(gòu)。其次,為了提高數(shù)據(jù)的處理性能,本文在算法層中提出一種采用混合策略的決策樹算法,通過將SPRINT算法和樸素貝葉斯算法有效結(jié)合,并分別進行并行化處理從而能夠在Hadoop平臺上運作。測試結(jié)果驗證了所提混合算法的可行性。
1" 研究問題與主要思想描述
目前,由Google提出的分布式計算模型Hadoop是主流的云計算平臺框架,具有經(jīng)濟、可靠、擴容能力強、并行性好、效率高等諸多優(yōu)點[3]。Hadoop大數(shù)據(jù)平臺幫助政企、金融、教育等多個行業(yè)及領域?qū)崿F(xiàn)了海量數(shù)據(jù)的計算存儲管理、數(shù)據(jù)深度挖掘以及品牌輿情等多樣化。為了支持對應用數(shù)據(jù)高吞吐量訪問,Hadoop采用了分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS) [3]。此外,為了將數(shù)據(jù)分散到集群的各臺機器上,以便提高計算效率,Hadoop具有MapReduce并行運行模型。然而,傳統(tǒng)的串行大數(shù)據(jù)挖掘算法不能有效地在Hadoop平臺上執(zhí)行,即無法應對海量數(shù)據(jù)挖掘問題。
因此,研究人員為了解決上述問題提出了許多方法。文獻[4]提出一種面向大數(shù)據(jù)挖掘的Hadoop框架K均值聚類算法,將大數(shù)據(jù)劃分成許多數(shù)據(jù)塊,在Reduce和Map階段進行加權(quán)融合。文獻[5]設計一種Hadoop下基于樸素貝葉斯分類的大數(shù)據(jù)挖掘方法,分析了MapReduce計算模型。文獻[6]通過Hadoop系統(tǒng)中的MapReduce模型對改進支持向量機SVM過程進行處理,提高了海量文本數(shù)據(jù)分類的效率。
但是上述單一的經(jīng)典數(shù)據(jù)挖掘分類算法(如決策樹算法、支持向量機SVM等)在處理海量圖書館用戶信息數(shù)據(jù)時總顯得力不從心,無法在準確率方面獲得較好的結(jié)果。因此, 本文在圖書館用戶信息Hadoop挖掘系統(tǒng)中提出一種采用混合策略的決策樹算法,該算法結(jié)合了分布式改進的SPRINT算法和并行化的樸素貝葉斯算法,從而符合HDFS和MapReduce的工作模式。
2" 基于Hadoop云計算平臺的信息挖掘系統(tǒng)設計
2.1" 關鍵技術(shù)
Hadoop云計算平臺包含分布式文件系統(tǒng)HDFS和MapReduce計算模型[7]兩個關鍵技術(shù)。分布式文件系統(tǒng)HDFS具有一次寫入多次讀取的能力,實現(xiàn)了高度容錯,較大的訪問帶寬特點避免了網(wǎng)絡阻塞,降低了對硬件的要求,實現(xiàn)了一定意義上的數(shù)據(jù)批量處理。而MapReduce計算模型是Hadoop平臺實現(xiàn)超大規(guī)模數(shù)據(jù)并行運算的關鍵,其本質(zhì)為一種軟件編程架構(gòu)(模式),能夠通過Hadoop集群上的多個節(jié)點訪問HDFS上存儲的分散數(shù)據(jù)且進行并行計算,避免大量數(shù)據(jù)的復制傳輸操作,有效節(jié)約了網(wǎng)絡帶寬,其標準的運作方式如圖1所示[8]。
2.2" 系統(tǒng)框架
基于Hadoop云計算平臺的信息挖掘系統(tǒng)必須充分發(fā)揮HDFS和MapReduce的作用,將數(shù)據(jù)存儲和數(shù)據(jù)挖掘任務工作分配到Hadoop集群中的各個節(jié)點上。因此,本文設計的信息挖掘系統(tǒng)框架如圖2所示,主要包括計算存儲層、Hadoop平臺層、算法層和用戶交互層,其中算法層是研究的重點,負責快速有效地處完成數(shù)據(jù)的相應挖掘任務。
3" 提出的新型圖書館大數(shù)據(jù)挖掘算法
經(jīng)過研究分析,傳統(tǒng)的經(jīng)典數(shù)據(jù)挖掘分類算法有許多在數(shù)據(jù)挖掘系統(tǒng)的算法層可以實現(xiàn)并行化,但是單一的分類算法在處理海量圖書館用戶信息數(shù)據(jù)時仍舊存在準確率不夠理想的問題。因此本文提出一種新的混合型圖書館大數(shù)據(jù)挖掘算法,將SPRINT算法和樸素貝葉斯算法有效結(jié)合。
3.1" SPRINT算法的分布式改進
首先,要對典型的SPRINT算法[9]進行分布式改進。SPRINT算法屬于決策樹算法,但是不同于ID3、C4.5和CART等算法,在對數(shù)據(jù)樣本集判斷最佳分裂屬性的度量時使用的是Gini指標。Gini值的計算公式如下:
式中:[S]表示一個集合;[Pi]表示種類[i]出現(xiàn)的頻率;[n]為種類的總數(shù)。
如果將集合[S]分裂為兩個子集[S1]和[S2],則兩者之間的Gini值為:
式中:[m]表示集合[S]中數(shù)據(jù)記錄的總行數(shù);[m1]和[m2]分別表示集合[S1]和[S2]中數(shù)據(jù)記錄的總行數(shù)。
為了有效利用圖1中MapReduce框架的映射功能(Map),需要進行分布式改進,因此,將SPRINT決策樹算法中位于相同層的所有Node樹節(jié)點的工作,映射到不同的Reducer進行分布式操作。然后,僅需不斷迭代調(diào)用過程就能夠?qū)崿F(xiàn)所有節(jié)點的分裂,從而建立所需的決策樹。Map函數(shù)的偽代碼如下:
輸入:訓練樣本集
輸出:根據(jù)Key排序后lt;Key,valuegt;鍵值對
格式化處理;
初始化lt;Key,valuegt;值,進行combine操作;
處理后的鍵值對輸出到文件中;
3.2" 樸素貝葉斯算法的并行化
貝葉斯分類的基礎是概率推理[10],可表示為[PCx1,x2,…,xn],其中[C]表示類別變量,[X={x1,x2,…,xn}]表示屬性變量集合,[xi]為特征。根據(jù)貝葉斯定理,樸素貝葉斯概率模型的定義如下:
為了在Hadoop平臺上實現(xiàn)樸素貝葉斯算法,需要對其進行并行化改進。在Map階段的操作同SPRINT算法一致,而將Reduce階段分為兩個步驟。第一步需要獲取概率信息文件,即獲取每個屬性在不同類別變量中的平均值[E(X)]和標準差[D(X)]。假設連續(xù)屬性服從高斯分布,兩者的計算方式如下:
根據(jù)第一輪得到的有關概率文件,利用式(5)完成第二步的分類,得到不同類別的概率乘積并按照從小到大排序選取最小值對應的結(jié)果作為樣本類別。
3.3" 混合決策樹算法的實現(xiàn)
利用SPRINT算法和樸素貝葉斯算法相結(jié)合的方法實現(xiàn)數(shù)據(jù)挖掘分類的流程如圖3所示??梢钥闯觯旌蠜Q策樹算法的Map階段如3.1節(jié)偽代碼所示,Reduce階段利用SPRINT算法構(gòu)造決策樹,然后分別對其每個葉子節(jié)點上的數(shù)據(jù)集執(zhí)行3.2節(jié)中樸素貝葉斯算法的式(6)和式(7)得到有關概率文件,最后利用計算概率乘積并按照從小到大排序,選取最小值對應的結(jié)果作為樣本類別。
4" 實驗結(jié)果與分析
4.1" 實驗環(huán)境
為了對本文提出的新型混合決策樹數(shù)據(jù)挖掘算法進行分析和驗證,進行Hadoop集群測試。虛擬機中搭建一個包含3個節(jié)點的Hadoop集群環(huán)境(1個master,2個slaves)。每個集群節(jié)點的硬件環(huán)境為: Intel Core i5 2.8 GHz處理器,4 GB內(nèi)存,500 GB硬盤。軟件環(huán)境為:CentOS 6.0操作系統(tǒng),Hadoop 1.0.4版本,Java JDK。
4.2" 數(shù)據(jù)預處理
實驗采用某高校中圖書管理系統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)集。該數(shù)據(jù)集包含圖書館2018年的用戶信息1 020 513條,如表1所示。
首先要將圖書館用戶信息數(shù)據(jù)劃分為訓練集和測試集兩個部分。訓練集中的所有書籍通過人工標記分為E(計算機類)、H(英語類)、W(自動類)、A(藝術(shù)類)、C(社會類)、J(文學類)六大類,對這六類圖書進行數(shù)據(jù)泛化得到表2。
4.3" 評估指標
為了對數(shù)據(jù)挖掘分類算法的性能進行有效量化評估,本文采用三個評估指標[12]:準確率(Accuracy)、召回率(Recall)、[F]值([F]?Measure)。準確率計算公式為:
4.4" 分類性能分析
在測試數(shù)據(jù)集上進行分類實驗,基于樸素貝葉斯算法[5]、SPRINT算法[9]和本文混合決策樹數(shù)據(jù)挖掘算法的分類器結(jié)果對比如圖4~圖6所示。
從圖4~圖6可以看出,樸素貝葉斯分類算法的性能最差,SPRINT算法有所提升,本文混合決策樹數(shù)據(jù)挖掘算法的準確率最高,且綜合評估指標[F]值也最高,有效提供了更加精準的用戶服務。
5" 結(jié)" 語
本文提出一種適用于Hadoop云計算平臺的混合決策樹數(shù)據(jù)挖掘分類算法,這種算法結(jié)合了分布式改進的SPRINT算法和并行化的樸素貝葉斯算法,從而符合HDFS和MapReduce的工作模式。Hadoop集群環(huán)境的用戶信息測試結(jié)果驗證了該算法的可行性和準確性。但是在召回率指標上,相比單一分類算法,混合算法的優(yōu)勢不突出。此外,算法運行時間有所增加,后續(xù)將對如何在不降低精確度的條件下,提高運行效率開展進一步研究。
參考文獻
[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] 李爽,陳瑞瑞,林楠.面向大數(shù)據(jù)挖掘的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的文本混沌性分類優(yōu)化技術(shù)實現(xiàn)[J].現(xiàn)代電子技術(shù),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].計算機技術(shù)與發(fā)展,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下基于粗糙集與貝葉斯的氣象數(shù)據(jù)挖掘研究[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.