錢真坤, 周思吉
1.四川文理學(xué)院 后勤服務(wù)處,四川 達(dá)州 635000; 2.四川文理學(xué)院 信息化建設(shè)與服務(wù)中心,四川 達(dá)州 635000
在信息技術(shù)高速發(fā)展的社會(huì),數(shù)據(jù)正以前所未有的速度增長[1-2],大數(shù)據(jù)作為一種新的戰(zhàn)略資源正在推動(dòng)創(chuàng)新,改變不同領(lǐng)域的研究以及人們的生活、思維方式[3-4].分布式計(jì)算是一種大數(shù)據(jù)策略,常用的大數(shù)據(jù)框架之一是Hadoop,在Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)上實(shí)現(xiàn)MapReduce并行計(jì)算[5-6].Apache Spark是另外一個(gè)常用的并行計(jì)算框架,Spark基于MapReduce算法實(shí)現(xiàn)分布式計(jì)算,與Hadoop 框架的不同之處是: Job中間輸出和結(jié)果可以保存在內(nèi)存中,因此不需要讀寫HDFS,Spark的核心依然是MapReduce.Spark對(duì)于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的算法更友好,適應(yīng)性更強(qiáng)[7-8].MapReduce由兩個(gè)階段組成: Map和Reduce,Map階段處理輸入的數(shù)據(jù)拆分,生成不同的鍵值對(duì),Reduce階段按鍵匯總在映射階段獲得的結(jié)果[9].
大數(shù)據(jù)分類研究已經(jīng)應(yīng)用到各個(gè)行業(yè),如金融、醫(yī)療、工業(yè)等.文獻(xiàn)[10]針對(duì)大數(shù)據(jù)分類中的噪聲問題,提出兩種消除噪聲樣本的大數(shù)據(jù)預(yù)處理方法: 同質(zhì)集合和異類集合過濾器,通過對(duì)大數(shù)據(jù)中噪聲的處理得到高質(zhì)量和干凈的數(shù)據(jù).文獻(xiàn)[11]提出一種Spark框架下K最鄰近(KNN)分類器的網(wǎng)絡(luò)大數(shù)據(jù)分類處理方法,該方法通過Map階段分區(qū)K近鄰操作,并通過Reduce階段確定最終K近鄰,同時(shí)對(duì)近鄰的標(biāo)簽集合進(jìn)行聚合,得出分類結(jié)果,但是該方法分類準(zhǔn)確度較低.文獻(xiàn)[12]提出了物聯(lián)網(wǎng)大數(shù)據(jù)的隨機(jī)森林分類方法,并根據(jù)蜻蜓優(yōu)化選取特征對(duì)電子醫(yī)療數(shù)據(jù)進(jìn)行分類,但該方法僅考慮了目標(biāo)和當(dāng)前特征變量的數(shù)據(jù).文獻(xiàn)[13]設(shè)計(jì)了一種線性支持向量機(jī)大數(shù)據(jù)分類方法,相較于傳統(tǒng)支持向量機(jī),該方法在訓(xùn)練速度和分類精度上具有明顯的優(yōu)勢(shì),但用于更大數(shù)據(jù)集時(shí)會(huì)影響性能.文獻(xiàn)[14]提出了蟻群優(yōu)化-人工神經(jīng)網(wǎng)絡(luò)聯(lián)合算法,該算法使用了深度人工神經(jīng)網(wǎng)絡(luò),并進(jìn)行了蟻群優(yōu)化,提升了分類準(zhǔn)確度.文獻(xiàn)[15]使用蝙蝠算法優(yōu)化人工神經(jīng)網(wǎng)絡(luò),提高了分類準(zhǔn)確率.
本文在研究了大數(shù)據(jù)處理框架和現(xiàn)有大數(shù)據(jù)分類方法的基礎(chǔ)上,提出了基于自適應(yīng)指數(shù)蝙蝠和堆疊自編碼器(Stacked AutoEncoder,SAE)的并行大數(shù)據(jù)分類方法,該方法根據(jù)大數(shù)據(jù)分類方法的MapReduce并行實(shí)現(xiàn),設(shè)計(jì)了基于自適應(yīng)指數(shù)蝙蝠算法.在Map階段進(jìn)行特征選擇,在Reduce階段,使用AEB訓(xùn)練的深度堆疊自動(dòng)編碼器分類,得到分類結(jié)果.實(shí)驗(yàn)結(jié)果表明,該方法能夠?qū)崿F(xiàn)較高精度的大數(shù)據(jù)分類.
MapReduce是一個(gè)編程范例,用于在分布式環(huán)境中處理大數(shù)據(jù)集,MapReduce框架為大數(shù)據(jù)提供了一個(gè)可擴(kuò)展的容錯(cuò)環(huán)境.在MapReduce范例中,Map階段執(zhí)行過濾和排序,Reduce階段執(zhí)行分組和聚合操作.
圖1 MapReduce框架
圖1給出了MapReduce框架流程.一個(gè)節(jié)點(diǎn)被選為負(fù)責(zé)分配工作的Master,其余的都是Worker,輸入數(shù)據(jù)分為多個(gè)Split,Master設(shè)備分配給Map Worker.每個(gè)Worker處理相應(yīng)的輸入Split,生成<鍵/值>對(duì)并將其寫入中間文件(在磁盤或內(nèi)存中).Master通知Reduce階段Worker關(guān)于中間文件的位置和讀取數(shù)據(jù),根據(jù)Reduce階段處理它.最后,將數(shù)據(jù)寫入輸出文件.
MapReduce范例的主要貢獻(xiàn)是可擴(kuò)展性,因?yàn)镸apReduce允許在大量節(jié)點(diǎn)上進(jìn)行高度并行化和分布式執(zhí)行任務(wù).在MapReduce范例中,Map或Reduce任務(wù)分成多個(gè)作業(yè),這些作業(yè)被分配給網(wǎng)絡(luò)中的節(jié)點(diǎn),通過將任何失敗節(jié)點(diǎn)的作業(yè)重新分配到另一個(gè)節(jié)點(diǎn)來實(shí)現(xiàn)可靠性.開源MapReduce在Hadoop分布式文件系統(tǒng)(HDFS)之上實(shí)現(xiàn).
Hadoop MapReduce的主要優(yōu)點(diǎn)之一是允許非專家用戶輕松地對(duì)大數(shù)據(jù)運(yùn)行分析任務(wù).Hadoop MapReduce使用戶可以完全控制輸入數(shù)據(jù)集的處理方式,用戶使用Java編寫查詢代碼,便于多數(shù)沒有數(shù)據(jù)庫背景,只需具備Java基礎(chǔ)知識(shí)的開發(fā)人員使用.
本文基于自適應(yīng)指數(shù)蝙蝠和SAE的并行大數(shù)據(jù)分類方法,Map階段使用AEB算法從數(shù)據(jù)庫中選擇特征.然后,將選定的特征提供給Reduce進(jìn)行大數(shù)據(jù)分類,Reduce階段使用深度堆疊自動(dòng)編碼器進(jìn)行大數(shù)據(jù)分類,該編碼器由AEB算法選擇特征訓(xùn)練而成.圖2給出了基于AEB堆疊自動(dòng)編碼器算法進(jìn)行大數(shù)據(jù)分類的框圖.
圖2 自適應(yīng)深度堆疊自動(dòng)編碼器大數(shù)據(jù)分類
將輸入的大數(shù)據(jù)集合視為H,并將多個(gè)屬性表示為H=xnm,1≤m≤G,1≤n≤q.其中,xnm表示第m個(gè)數(shù)據(jù)的第n個(gè)屬性的大數(shù)據(jù),所有數(shù)據(jù)均由G個(gè)數(shù)據(jù)點(diǎn)和q個(gè)屬性組成.
特征提取是Map階段的重要功能,其中選擇相關(guān)特征通過減小維度來最大程度地提高分類精度.Map階段使用AEB算法選擇特征.
(1)
(2)
(3)
(4)
指數(shù)加權(quán)移動(dòng)平均值(EWMA)是平均數(shù)據(jù)的過程,以獲得較少的權(quán)重隨時(shí)間而被刪除的數(shù)據(jù),可表示為:
(5)
(6)
AEB算法是通過引入自適應(yīng)速度的概念而得到的,蝙蝠個(gè)體繼承上一代的速度,并獲得最佳個(gè)體飛行,當(dāng)算法進(jìn)行到后期時(shí),大多數(shù)蝙蝠個(gè)體都會(huì)陷入局部?jī)?yōu)化,而蝙蝠的速度無法使其逃脫局部?jī)?yōu)化,為了解決這個(gè)問題,本文提出了自適應(yīng)蝙蝠速度算法. 該算法基于每個(gè)蝙蝠的適應(yīng)度(距離越近適應(yīng)的最佳距離值越高,距離越遠(yuǎn)值越低),給其速度加上權(quán)重,如果個(gè)體比其他個(gè)體更接近最優(yōu)解,則其適應(yīng)價(jià)值更高,此時(shí)迅速放慢個(gè)體速度,使個(gè)體收斂到最優(yōu)解,在這種情況下給出較小的權(quán)重值.相反,如果個(gè)體的適應(yīng)價(jià)值非常低,則意味著個(gè)體距離最佳解決方案還很遠(yuǎn),需要給它更大的權(quán)重值.權(quán)重計(jì)算方法設(shè)計(jì)為:
(7)
(8)
大數(shù)據(jù)被分為數(shù)據(jù)子集,表示為xnm={qe},1≤e≤F,數(shù)據(jù)子集的總數(shù)等于Map階段中的映射器數(shù)量,表示為D={D1,…,DF},其中F是從大數(shù)據(jù)開發(fā)的總子集數(shù).Map的輸入由E個(gè)總屬性組成,表示為:
qe={Sj,q},1≤j≤M,1≤q≤E
(9)
其中,M u={u1,u2,…,ub,…,ul} (10) 其中,選擇特征的總數(shù)表示為l.解向量是特征尺寸為[1×l]的向量. 在MapReduce處理框架中,首先對(duì)大數(shù)據(jù)集進(jìn)行不同子集的劃分,每個(gè)子集對(duì)應(yīng)不同的Split,然后在Map進(jìn)行特征選擇,輸出鍵值對(duì)為<分類準(zhǔn)確率,特征>,對(duì)所有分類準(zhǔn)確率進(jìn)行排序,選擇最大的分類準(zhǔn)確率,其對(duì)應(yīng)的特征即為最終特征,所有特征以集合形式輸入Reduce階段. 在Map階段將獲得的AEB算法用于從數(shù)據(jù)庫中選擇特征.并且在Reduce階段使用的深度堆疊自動(dòng)編碼器由AEB訓(xùn)練而成. 圖3 深度堆疊自動(dòng)編碼器網(wǎng)絡(luò)體系結(jié)構(gòu) 使用最常用的深度學(xué)習(xí)方法深度堆疊自動(dòng)編碼器對(duì)Map中選定的特征進(jìn)行分類,深度堆疊自動(dòng)編碼器是一個(gè)對(duì)稱的神經(jīng)網(wǎng)絡(luò),用于無人監(jiān)督方式學(xué)習(xí)數(shù)據(jù)集的特征,分為3層: 輸入層、隱藏層和輸出層.輸入層完全連接到隱藏層,隱藏層進(jìn)一步連接到輸出層,如圖3所示. (11) (12) 其中,W1是編碼權(quán)向量,b1是編碼偏置向量,W2是解碼權(quán)向量,b2是解碼偏置向量.f(·)和g(·)表示非線性的輸入和輸出映射函數(shù),采用Sigmoid函數(shù)可表示為f(x)=1/[1+exp(-x)].深度自動(dòng)編碼器為了使隱藏層稀疏,使用稀疏約束最小化重構(gòu)誤差,這種架構(gòu)被稱為稀疏自編碼器. (13) (14) 多層自動(dòng)編碼器是多個(gè)自動(dòng)編碼器的串聯(lián),是將連續(xù)層輸入與堆疊在該層上的自動(dòng)編碼器輸出連接的過程.對(duì)于第p層,激活輸出為: (15) (16) 深層自動(dòng)編碼器包含3個(gè)過程.①初始化成本函數(shù)局部最小值附近的各個(gè)自動(dòng)編碼器參數(shù).②學(xué)習(xí)到下一個(gè)自動(dòng)編碼器隱藏層的輸入.③執(zhí)行反向傳播進(jìn)行微調(diào),通過同時(shí)更改所有模型參數(shù),可以改善整體分類性能. 將本文所提AEB堆疊自動(dòng)編碼器的大數(shù)據(jù)分類方法進(jìn)行實(shí)驗(yàn),并通過現(xiàn)有方法對(duì)本文方法進(jìn)行比較分析,以證明本文方法的有效性.本文所有實(shí)驗(yàn)在Windows 10操作系統(tǒng)的電腦中運(yùn)行.MapReduce實(shí)驗(yàn)環(huán)境由6臺(tái)集群結(jié)點(diǎn)組成,選取1臺(tái)作為主節(jié)點(diǎn),另外5臺(tái)作為從節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的配置如下: Intel Core i5-8GB,RAM為64 G,硬盤容量為1 T,軟件配置為CentOS 6.5,Hadoop版本為5.4.5,6個(gè)節(jié)點(diǎn)都連接在100 Mb的交換機(jī)上. 本文采用準(zhǔn)確度(Accuracy)和真正例率(TPR)這兩個(gè)指標(biāo)評(píng)估模型的性能,數(shù)學(xué)定義為: (18) (19) 當(dāng)一個(gè)樣本為正類,且被預(yù)測(cè)為正類時(shí),稱為真正類(TP); 假若負(fù)類被預(yù)測(cè)為正類,稱為假正類(FP); 假若是負(fù)類被預(yù)測(cè)成負(fù)類,稱為真負(fù)類(TN); 假若正類被預(yù)測(cè)為負(fù)類,稱為假負(fù)類(FN). 本文使用的兩個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集分別是加州大學(xué)歐文分校(UCI)機(jī)器存儲(chǔ)庫中Cleveland數(shù)據(jù)集和Pima India數(shù)據(jù)集.對(duì)比算法有: 文獻(xiàn)[11]中的KNN大數(shù)據(jù)分類方法,文獻(xiàn)[13]中SVM分類方法,文獻(xiàn)[14]中蟻群優(yōu)化-人工神經(jīng)網(wǎng)絡(luò)聯(lián)合算法以及文獻(xiàn)[15]中蝙蝠算法+人工神經(jīng)網(wǎng)絡(luò).對(duì)比實(shí)驗(yàn)通過改變組合數(shù)據(jù)集中訓(xùn)練數(shù)據(jù)的百分比來對(duì)不同方法進(jìn)行分析.經(jīng)過多次實(shí)驗(yàn),本文對(duì)于自適應(yīng)蝙蝠算法的參數(shù)設(shè)置為: 種群200,迭代次數(shù)70,初始發(fā)射速率0.95,響度衰減系數(shù)0.95,頻度增加系數(shù)0.5. 圖4和圖5給出了Cleveland數(shù)據(jù)集中不同訓(xùn)練數(shù)據(jù)在百分比條件下準(zhǔn)確度和TPR的對(duì)比結(jié)果. 圖4 Cleveland數(shù)據(jù)集的準(zhǔn)確度對(duì)比結(jié)果 圖5 Cleveland數(shù)據(jù)集的TPR對(duì)比結(jié)果 從圖4和圖5中的對(duì)比數(shù)據(jù)可以看出,在Cleveland數(shù)據(jù)集上針對(duì)不同訓(xùn)練數(shù)據(jù)百分比,本文所提算法的準(zhǔn)確度都優(yōu)于其他4種方法.在訓(xùn)練數(shù)據(jù)百分比為90%時(shí),本文所提算法具有最高的準(zhǔn)確度,達(dá)到0.887 5,這是因?yàn)楸疚乃崴惴ㄔO(shè)計(jì)了自適應(yīng)指數(shù)蝙蝠算法來選擇最優(yōu)特征,增加了分類準(zhǔn)確度,同時(shí)深度堆疊自動(dòng)編碼器通過AEB訓(xùn)練得到的分類結(jié)果更加準(zhǔn)確.文獻(xiàn)[14]中蟻群優(yōu)化-人工神經(jīng)網(wǎng)絡(luò)聯(lián)合算法準(zhǔn)確度次之,這是因?yàn)槭褂昧松疃热斯ど窠?jīng)網(wǎng)絡(luò),并進(jìn)行了蟻群優(yōu)化,提升了分類準(zhǔn)確度.文獻(xiàn)[15]中蝙蝠算法+人工神經(jīng)網(wǎng)絡(luò)算法使用了蝙蝠算法優(yōu)化人工神經(jīng)網(wǎng)絡(luò),但是由于蝙蝠算法的局限性,導(dǎo)致其分類準(zhǔn)確度與SVM分類性能接近.在Cleveland數(shù)據(jù)集上,針對(duì)不同訓(xùn)練數(shù)據(jù)百分比,本文所提算法的TPR都優(yōu)于其他4種方法,在訓(xùn)練數(shù)據(jù)百分比為90%時(shí),本文所提算法具有最高的真正例率,達(dá)到0.928 9.這是因?yàn)楸疚腁EB+堆疊自動(dòng)編碼器對(duì)分類性能的提升. 圖6和圖7給出了Pima India數(shù)據(jù)集上不同訓(xùn)練數(shù)據(jù)在百分比條件下準(zhǔn)確度和TPR的對(duì)比結(jié)果. 圖6 Pima India數(shù)據(jù)集的準(zhǔn)確度對(duì)比結(jié)果 圖7 Pima India數(shù)據(jù)集的TPR對(duì)比結(jié)果 圖8 Higgs大數(shù)據(jù)集的準(zhǔn)確度對(duì)比結(jié)果 從圖6和圖7中數(shù)據(jù)可以看出,當(dāng)訓(xùn)練數(shù)據(jù)百分比達(dá)到80%時(shí),Pima India數(shù)據(jù)集上本文所提算法的準(zhǔn)確度最高; 當(dāng)訓(xùn)練數(shù)據(jù)百分比達(dá)到90%時(shí),TPR最高.而且,在所有不同訓(xùn)練數(shù)據(jù)百分比條件下,本文所提算法的性能都比其他算法高,說明了本文方法的有效性. 為了驗(yàn)證本文方法在大數(shù)據(jù)集上的優(yōu)越性能,在Higgs大數(shù)據(jù)集上給出性能對(duì)比結(jié)果.Higgs大數(shù)據(jù)集樣本數(shù)量為11 000 000,特征向量28,標(biāo)簽數(shù)量42. 從圖8中可以看出,本文方法在Higgs大數(shù)據(jù)集上的準(zhǔn)確度能夠達(dá)到0.83,比文獻(xiàn)[14]算法準(zhǔn)確度提高了0.11.針對(duì)不同的大數(shù)據(jù)集,本文所提方法能夠以高精度實(shí)現(xiàn)大數(shù)據(jù)分類,且分類性能優(yōu)于其他方法,說明了本文方法的普適性和優(yōu)越性. 針對(duì)大數(shù)據(jù)分類性能低的問題,本文提出一種自適應(yīng)指數(shù)蝙蝠和SAE的并行大數(shù)據(jù)分類方法,該方法在Map階段使用設(shè)計(jì)的自適應(yīng)指數(shù)蝙蝠算法進(jìn)行特征選擇; 在Reduce階段使用經(jīng)過AEB算法訓(xùn)練的深度堆疊自動(dòng)編碼器進(jìn)行分類,進(jìn)一步提升了分類性能.使用不同的實(shí)驗(yàn)數(shù)據(jù)集對(duì)本文所提方法進(jìn)行實(shí)驗(yàn),不同百分比條件下的分類性能結(jié)果顯示,本文所提方法能夠以高精度實(shí)現(xiàn)大數(shù)據(jù)分類,且在準(zhǔn)確度和TPR性能方面都優(yōu)于現(xiàn)有其他方法,說明本文方法的有效性和優(yōu)越性.未來的工作將通過擴(kuò)展本文所提出的方法來處理安全約束.2.2 Reduce階段
3 實(shí)驗(yàn)分析
4 結(jié)論
西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年6期