摘 要:針對大數據環境下并行K-means算法存在的面對高維數據聚類效果差、數據分區不均勻、初始質心敏感等問題,提出了一種基于MapReduce和MSSA的并行K-means算法MR-MSKCA。首先,提出基于肯德爾相關系數和深度稀疏自動編碼器的降維策略(dimensionality reduction strategy based on Kendall correlation coefficient and DSAE,DRKCAE)對高維數據進行特征加權和特征提取,解決了高維數據不相關特征和結構稀疏導致的聚類效果差的問題;其次,提出基于兩段映射的廣義超平面分區策略 (uniform partition strategy based on two-stage mapping,UPS)對數據集進行劃分,獲取均勻的數據分區;最后提出非均勻變異麻雀搜索算法 (non-uniform mutation sparrow search algorithm,MSSA)用于獲取并行K-means的聚類質心,解決了算法初始質心敏感的問題。在UCI數據集上進行的實驗顯示,MR-MSKCA較MR-KNMF、MR-PGDLSH、MR-GAPKCA的運行時間分別降低了45.1%、49.1%、59.8%,聚類效果分別提升了19.2%、22.8%、24%,表明 MR-MSKCA對大數據進行聚類時有良好性能,適用于不同場景的大數據聚類分析。
關鍵詞:MapReduce框架;DRKCAE策略;UPS策略;并行聚類;MSSA算法
中圖分類號:TP301.6 文獻標志碼:A 文章編號:1001-3695(2022)11-006-3244-08
doi: 10.19734/j.issn.1001-3695.2022.04.0149
Parallel K-means algorithm based on MapReduce and MSSA
Liu Weiming1, Cui Yu1, Mao Yimin1, Liu Wei2
(1. School of Information Engineering, Jiangxi University of Science amp; Technology, Ganzhou Jiangxi 341000, China; 2. School of Information Engineering, Gannan University of Science amp; Technology, Ganzhou Jiangxi 341000, China)
Abstract:In the big data environment, the parallel K-means clustering algorithm suffers from poor clustering effect, unba-lanced data partition, cluster centroid sensitivity. To solve these problems, this paper proposed a parallel K-means algorithm based on MapReduce and MSSA(MR-MSKCA). Firstly, MR-MSKCA designed a dimensionality reduction strategy (DRKCAE), which used Kendall correlation coefficient and deep sparse autoencoder to weight features and extract features to improve the clustering effect of high-dimensional data. Secondly, it proposed a UPS, which divided the dataset and obtained uniform data partition. Finally, this paper proposed MSSA to get the parallel K-means clustering centroid, which solved the problem of initial centroid sensitivity. Compared with MR-KNMF, MR-PGDLSH and MR-GAPKCA, the running time of MR-MSKCA decreased by 45.1%, 49.1%, 59.8%, and the clustering effect increased by 19.2%, 22.8%, 24%. Experiments show that the MR-MSKCA not only has excellent performance, but also has strong adaptability with large-scale dataset.
Key words:MapReduce framework; DRKCAE; UPS; parallel clustering; MSSA
基金項目:2020年度科技創新2030—“新一代人工智能”重大項目(2020AAA0109605);國家自然科學基金資助項目(41562019)
作者簡介:劉衛明(1964-),男,江西新余人,教授,碩士,主要研究方向為大數據、數據挖掘;崔瑜(1997-),男,江西撫州人,碩士研究生,主要研究方向為并行計算、數據挖掘;毛伊敏(1970-),女(通信作者),新疆伊犁人,教授,碩導,博士,主要研究方向為大數據、數據挖掘(mymlyc@163.com);劉蔚,男,江西上饒人,講師,碩士,主要研究方向為大數據、數據挖掘.
0 引言
K-means聚類算法是一種簡單高效、易實現、擴展性好的聚類分析方法[1],廣泛應用于機器學習、圖像分析[2]、模式識別[3]、數據壓縮[4]等領域。隨著大數據時代的來臨,數據規模急速增長,傳統K-means算法面臨樣本數據大、特征維度高的挑戰[5]。因此,設計適用于大數據環境的K-means算法有著十分重要的意義。
隨著分布式框架在K-means算法上的廣泛運用,由Apache基金會開發的MapReduce大數據計算模型憑借其穩定性高、可擴展性強的優勢[6]深受研究人員的青睞。其中,Zhao等人[7]首先提出基于MapReduce的并行K-means算法,但該算法沒有考慮高維數據存在大量不相關特征的同時結構稀疏,直接進行聚類會導致聚類效果不佳的問題。為了解決這個問題,Li等人[8]提出基于MapReduce和局部敏感散列(locally sensitive hash,LSH)的K-means算法,將高維數據映射到數據桶內,將數據桶內相似的數據壓縮成數據基點,以此減少相似數據的冗余計算,提升了聚類效果;但該算法沒有直接對數據進行特征處理,僅通過融合相似數據的方式弱化了高維數據對聚類效果的影響,聚類效果提升有限。為此,Lydia等人[9]基于MapReduce平臺和非負矩陣分解 (non-negative matrix factorization,NMF)提出MR-KNMF(MapReduce and NMF with K-means)算法,將高維數據矩陣分解成非負的基矩陣和系數矩陣,最后用低維系數矩陣代替原高維矩陣進行聚類,該算法有效地降低了數據的維度,但在非負矩陣分解前沒有考慮不相關特征對聚類效果的影響,導致算法的聚類效果降低。
雖然高維數據聚類效果差嚴重影響并行K-means的算法性能,但數據分區對并行K-means的影響也不容忽視。目前,基于MapReduce的K-means算法通常采用默認的數據劃分器進行數據分區,容易產生數據傾斜,使得各節點負載不均衡,降低了算法的運行效率。為了均勻地劃分數據,Mao等人[10]提出基于MapReduce框架的并行劃分聚類算法(parallel clustering algorithm based on grid density and local sensitive hash,MR-PGDLSH),該算法通過自適應分組策略,通過計算誤差平方和SSE確定數據的離散情況,當達到SSEmin時即完成對數據的均勻劃分。Gavagsaz等人[11]則提出可擴展簡單隨機抽樣的排序平衡算法 (sort balancing algorithm for scalable simple,SBASC),首先對數據進行采樣,接著基于采樣結果排序,以此將鄰近數據劃到同一分區,以此達到數據均衡。雖然這些算法都對數據劃分進行了改進,但仍然存在時間復雜度過高、數據分區不夠均勻的問題。
此外,基于MapReduce的K-means算法還存在初始質心敏感的問題,隨機選取的質心往往會使算法陷入局部最優。為此,眾多學者對如何減少質心敏感性進行研究,冀素琴等人[12]引入Canopy事先對數據集進行粗聚類,生成多個互相重疊的Canopy以獲取更為準確的質心,使算法終止于全局最優解;但由于采用人工確定Canopy的半徑,會使聚類效果不穩定。為此,李曉瑜等人[13]通過合并鄰近簇心和鄰近簇并計算合并后的新簇心作為該次迭代的質心,避免了人工確定半徑,但沒有完全解決算法不穩定的問題。與此同時,群智能算法通過模擬生物的自組織行為獲取問題的最優解得到了廣泛的應用,眾多學者開始結合群智能算法改善質心敏感的問題。王波等人[14]利用自適應布谷鳥搜索 (adaptive cuckoo search,ACS)優化K-means,提出MR-ACSKMC(MapReduce and ACS with K-means)算法,通過自適應步長提高布谷鳥種群的搜索能力,獲取全局最佳質心。Alshammari等人[15]在Hadoop環境下提出遺傳算法與K-means相結合的算法MR-GAPKCA(genetic algorithm based parallel K-means clustering using MapReduce)優化質心的選取,提高算法全局搜索能力。以上算法成功地將群智能算法與并行K-means算法結合,改善了初始質心敏感的問題,但是仍然存在局部收斂速度慢、難以獲得全局最優的缺點,初始質心敏感問題仍有待進一步完善。
綜上,基于MapReduce的K-means算法仍然存在面對高維數據聚類效果差、數據劃分不均勻、初始質心敏感的問題。針對這些問題,本文提出基于MapReduce和MSSA的并行K-means算法MR-MSKCA(parallel K-means algorithm based on MapReduce and MSSA),算法的主要工作為:a)設計基于肯德爾相關系數和DSAE的降維策略DRKCAE,先提出肯德爾相關系數權重(Kendall correlation coefficient weights,KCCW)對高維數據特征加權以消除不相關特征的干擾,接著構造基于L1范數和自適應懲罰系數的DSAE進行特征提取,獲得結構緊湊的低維數據,解決了面對高維數據聚類效果差的問題;b)設計基于兩段映射的廣義超平面分區策略UPS對數據進行劃分,首先利用兩段映射獲取劃分點集合Sc,接著提出廣義超平面劃分集合Pri,并根據Sc使用Pri劃分數據得到均勻的數據分區;c)提出了非均勻變異麻雀搜索算法MSSA優化并行K-means算法進行質心選取,改善了算法對初始質心敏感的問題。
1 相關概念介紹
1.1 深度稀疏自編碼器
深度稀疏自編碼器(deep sparse autoencoder,DSAE)是多個添加稀疏性限制后的自編碼器堆疊而成的神經網絡。它以輸入數據為學習目標,通過增加隱含層層數逐層貪婪地訓練網絡,從高維數據中逐層提取出特征,最終獲得可以表征原始數據的低維稀疏數據。DSAE通常由編碼器和解碼器兩部分構成,DSAE的編碼解碼過程為
其中:數據點r(r∈R)為輸入樣本;W為權值矩陣;bb為編碼層偏置;bj為解碼層偏置; f(·)為激活函數;α、β為編碼函數和解碼函數。
1.2 L1范數
L1范數是指向量中各個元素的絕對值之和,常用做特征選擇。假設wi為n維向量X的第i維分量,L1范數為
1.3 麻雀搜索算法
麻雀搜索算法(sparrow search algorithm,SSA)是一種新型的群智能算法,通過模擬麻雀捕食的行為尋找優化問題的最優解,主要包括引領麻雀搜索、隨從麻雀跟隨、麻雀種群反捕食。
a)引領麻雀搜索。假設麻雀的位置為[Xi1,…,Xij,…,XiD],其中i=1,2,…,N表示第i只麻雀,Xij表示其在第j維的位置。引領麻雀占種群的10%~20%,每次迭代位置更新如下:
其中:t為當前迭代次數;T為最大迭代次數;α∈(0,1]為隨機數;R2∈[0,1]和ST∈[0.5,1]分別表示報警值和安全閾值;Q是服從正態分布的隨機數;L是每個元素都是1的1×d維矩陣。
b)隨從麻雀跟隨。假設Xp是引領麻雀的最佳位置,Xworst是最差位置;A表示1×d的矩陣,其中元素被隨機賦值為1或-1,且A+=AT(AAT)-1。隨從麻雀位置更新為
c)麻雀種群反捕食。假設Xbest為當前全局最優位置,β為步長控制參數,服從(0,1)分布,K∈[-1,1]是一個隨機數;fg、fw分別為當前全局最佳和最差的適應度值;ε為常數,用來避免零除錯誤。危險發生之時,麻雀種群位置更新如下:
1.4 非均勻算子
非均勻算子是一種自適應變異算子,返回一個[0,y]值,該值會隨著迭代次數的增加逐漸趨向于0。假設r為[0,1]的一個隨機數,T為最大迭代次數,b為決定非均勻程度的系統參數,非均勻算子Δ(t,y)可以表示為
2 MR-MSKCA算法
2.1 算法思想
MR-MSKCA算法主要包括三個階段:a)數據降維,提出DRKCAE降維策略,使用KCCW對特征賦予權重再進行DSAE降維,以解決高維數據不相關特征及結構稀疏引起的聚類效果差的問題;b)數據分區,設計UPS策略,通過支撐點映射和SFC映射獲取劃分點,再根據劃分點使用廣義超平面劃分獲取均勻的數據分區;c)并行聚類,提出MSSA,利用MSSA的全局搜索能力優化并行K-means聚類質心的選取,并行完成聚類任務。
2.2 數據降維
目前基于MapReduce的K-means算法對高維數據進行聚類時,由于高維數據存在不相關特征和結構異常稀疏的問題,不相關特征的干擾和度量方法的失效共同導致了聚類效果差。為了解決這個問題,MR-MSKCA設計了DRKCAE策略對高維數據進行處理,既減少了不相關特征對聚類的干擾,同時通過非線性降維獲得緊湊的數據表示。該策略具體過程分為兩步:a)特征加權,首先獲取初始數據集Rn×d的特征集I及權重集W,接著計算特征間的肯德爾相關系數,最后提出肯德爾相關系數權重KCCW,并根據KCCW得到權重數據集Xn×d;b)特征提取,在獲取權重數據集Xn×d后,首先構造DSAE,確定損失函數LSAE,接著設計自適應懲罰系數λ調節LDSAE的懲罰項,最后對Xn×d進行特征提取得到低維數據集X′。
2.2.1 特征加權
在進行特征提取前,首先對初始數據集的特征進行加權,以降低不相關特征對聚類結果的影響,特征加權的步驟如下:首先獲取初始數據集Rn×d,將初始數據集的特征與特征權重記為I=[I1,I2,…,Id]和W=[w1,w2,…,wd],并將[w1,w2,…,wd]全部初始化為1;接著計算I1與[I2,I3,…,Id]的肯德爾相關系數,計算完I1后依次對其他特征進行計算;最后提出肯德爾相關系數權重賦予特征權重,計算[I2,I3,…,Id]的肯德爾相關系數權重KCCW,并根據KCCW計算新特征值[w1I1,w2I2,…,wdId],得到權重數據集Xn×d。
定理1 肯德爾相關系數權重KCCW。設KCC(Ii,Ij)為特征Ii與其他任一特征的肯德爾相關系數,d為數據的特征維度,則特征Ii的KCCW值為
證明 已知肯德爾相關系數KCC(Ii,Ij)大小代表Ii與其他任一特征的肯德爾相關系數,KCC(Ii,Ij)越大,特征之間的相似度越大,因此可以用KCC(Ii,Ij)的平均值Z(Ii)代表Ii與所有特征的相關程度。將Z(Ii)代入KCCW(Ii)的計算公式,Z(Ii)與∑Z(Ij)的比值反映了Z(Ii)在總相關程度中的份額,其值越大則說明Ii越重要,KCCW(Ii)很好地衡量了特征Ii的重要程度,可以作為特征加權的肯德爾相關系數權重。證畢。
2.2.2 特征提取
在獲取加權的特征后,不相關特征的影響被抑制,利用DSAE進行特征提取,得到可以反映原始數據的低維緊湊表示,以減緩高維數據結構稀疏對聚類效果的影響。特征提取過程主要包含以下三個步驟:
a)DSAE構造。
DSAE的結構由一層編碼層、一層解碼層以及若干層隱含層構成。首先初始化編碼層的權重W和隱含層偏置b,輸入樣本X將通過編碼層并以式(1)進行編碼壓縮得到隱含層表示;接著在解碼層選取sigmoid函數為解碼層激活函數,以式(2)對隱含層表示解碼重建;最后確定損失函數。為了數據具有低維結構的同時兼備稀疏性,本文提出基于L1范數的損失函數LDSAE對隱含層節點進行有效抑制。
定理2 基于L1范數的損失函數LDSAE。已知X為輸入樣本X的重構,L(·)為平方誤差函數,ki,j為輸入xi對應隱含層節點j上的激活值,λ為懲罰系數,則基于L1范數的損失函數LDSAE為
證明 將LDSAE作為最小化目標時,優化問題要同時兼顧平方誤差損失項L(X,X)與L1懲罰項。考慮參數二維的情況,如圖1所示,圓圈部分為L(X,X)平方誤差損失的等高線,菱形部分為L1懲罰項產生的損失值,兩者交匯時得到最優參數,而此時的激活值k1=0。擴展到多維的情況,L1懲罰項的損失值與參數坐標相交點為突出點,L(X,X)等高線與突出點相交的位置激活值都為0,此時輸入特征被抑制,并由此引導出稀疏性。證畢。
b)懲罰系數確定。
在構造完損失函數LDSAE后,考慮樣本輸入的特征差異很大,L1懲罰項采取固定的λ不能適應全體特征。因此本文提出自適應懲罰系數λ調節懲罰項,根據不同特征的分布情況,自適應調節懲罰系數,以達到最佳懲罰效果。
定理3 自適應懲罰系數λ。已知在特征Ii上數據的方差為Si,數據數量為n,c為常數,則自適應懲罰系數λ為
證明 由于Si可以反映該特征下數據的分布情況,信息量越多Si越大,信息量越少Si越小。對于信息量少的特征,自適應懲罰系數λ越大,可以加大對隱含層節點的懲罰,不相關特征被快速抑制,故自適應懲罰系數λ可以作為隱含層節點激活度的懲罰系數。證畢。
c)特征提取。
如圖2所示,本文構建的DSAE由多層稀疏自編碼器構成,其中各層隱含層節點數在實驗部分給出。以第一層稀疏自編碼器為例,首先將特征加權得到的權重數據集Xn×d通過DSAE的編碼層前向傳遞訓練得到重構樣本;接著以最小化損失函數LDSAE為訓練目標進行反向傳遞訓練,對權重W和隱含層偏置b不斷優化;最后得到由W、b計算出的隱含層表示作為下一層的輸入X(1)。X(1)通過剩余的t-1層稀疏自編碼器逐層訓練,得到第t個隱含層的編碼作為最終結果X′,X′即為數據提取后的數據集。算法1描述了特征提取過程。
算法1 特征提取算法
輸入:特征矩陣X;損失函數LDSAE。
輸出:目標特征矩陣X′。
function extraction(X,LDSAE)
for i=1 to t do
initialize weight matrix and offset vector θ(W,b);
forward propagation computing output layery; updating θ minimize LDSAE;
using θ to calculate hidden layer representation hi;
X(i)=hi; //隱含層表示作為下一層輸入
end for
X′=X(t); //用第t層隱含層表示目標特征矩陣X′
return X′.
end function
2.3 數據分區
目前基于MapReduce的K-means算法,由于輸入數據分布存在差異,直接進行數據分區容易造成數據傾斜,影響并行效率。為了解決數據分區階段數據劃分不均勻的問題,本文提出UPS策略,設計兩段映射獲取高質量劃分點并以此對輸入數據集進行均勻劃分。該策略分為兩個步驟:a)劃分點選取,首先提出支撐點集精度評價函數DPP(Sm)選取支撐點集Sm,并使用支撐點集Sm將數據集映射到h維向量空間,接著對向量空間執行SFC映射,根據映射后的數據點SFC(rv)值選取劃分點;b)數據分區,根據兩段映射得到的高質量劃分點Sc,提出廣義超平面劃分集合Pri對原始數據集進行均勻劃分。
2.3.1 劃分點選取
為了實現數據集的均勻劃分,首先對數據集進行兩段映射獲取高質量劃分點,再利用劃分點對數據進行均勻分區。兩段映射包括支撐點映射和空間填充曲線(space filling curve,SFC)映射,可以將原始度量空間的數據映射成一維編碼的SFC空間,并保證了映射前后空間的相似性[16]。因此,可以使用SFC空間一維整數之間的分區估計原始數據之間的分區。兩段映射選取劃分點的步驟主要為:
a)抽樣。為降低支撐點映射成本,首先對數據集R進行隨機抽樣,如圖3(b)所示,從圖3(a)中抽樣得到樣本集Rs。抽樣的目的是為了降低支撐點映射的時間開銷,方便進一步選取劃分點,不會影響對數據全集R的劃分。
b)支撐點選取。采樣后隨機對映射所需的支撐點進行選取,為了使向量空間與原始空間盡量保持相似,將支撐點集Sm的選取范圍固定在離群點中,往往可以達到較好的映射效果[17]。本文先使用LOF算法[18]找出Rs的離群點,并將離群點構成支撐點候選集Sp。為了從Sp中選出支撐點集Sm,需要對Sm的精度進行評價,提出支撐點集質量評價函數DPP(Sm)作為評價指標,選取使DPP(Sm)最大的集合作為Sm。
證明 根據三角不等式關系d(ri,rj)o≥max{|d(ri,smt)-d(rj,smt)‖smt∈Sm}=d(ri,rj)v可知,d(ri,rj)o提供了d(ri,rj)v的上界。當d(ri,rj)v越接近d(ri,rj)o,向量空間與原始空間的相似度越高,支撐點映射效果越好,即Sm精度越高;反之,向量空間與原始空間的相似度越低,支撐點映射效果越差,即Sm精度越低。因此,Sm的精度可以通過d(ri,rj)v與d(ri,rj)o的平均比值進行評價。證畢。
c)支撐點數量確定。
支撐點數量h決定了映射后向量空間的維度,h的數量越多,支撐點映射后向量空間的維度越高,能保留原始空間的信息越多,映射前后的空間相似度越好[19]。但另一方面,也增加了數據點到支撐點之間的距離計算開銷,這使得映射成本增大。為了平衡映射效果和計算成本,本文實驗將支撐點的數量h確定在3。
d)支撐點映射。
根據DPP(Sm)和h得到支撐點集Sm,接著對采樣數據集Rs進行支撐點映射。數據點r(r∈Rs)通過支撐點集合Sm={sm1,sm2,…,smh}映射,原始空間的r映射到h維向量空間構成rv,rv由r到Sm距離組成的h維向量表示:rv=〈d(r,sm1),d(r,sm2),…,d(r,smh)〉。如圖3(c)所示,數據點r1通過支撐點集Sm={sm1,sm2}映射到二維向量空間。
e)SFC映射。
在支撐點映射之后,使用SFC映射將向量空間映射成SFC空間,如圖3(d)所示。具體過程為:首先構造h維空間的SFC曲線對rv執行映射,每個rv得到對應的整數編碼值SFC(rv);接著根據數據分區數m對編碼值分組,將全體SFC(rv)分成m份;最后選取每份的第一個SFC(rv)對應的數據點進入劃分點集合Sc。
2.3.2 數據分區
得到了劃分點集合Sc后,由于Sc是通過對兩段映射后的整數域均勻分區而選出的,而兩段映射又保持了空間的相似性[16],所以可以利用Sc在原始空間劃分出均勻的分區。具體過程如下:對于每個數據點r(r∈R),計算r到每個劃分點sc(sc∈Sc)的歐氏距離;接著提出廣義超平面劃分集合Pri,將鄰近的數據點r聚集形成Pri數據集。當所有的數據點r計算完畢后,即r都進入了對應的分區Pi,劃分結束,得到m個數據分區Pi。
定理5 廣義超平面劃分集合Pri。設r(r∈R)為數據集中一點,sci為i個劃分點,scj為其他劃分點,d(r,sci)、d(r,scj)對應r到不同劃分點的歐氏距離,則Pri為
證明 由條件r∈R∧?sci≠scj,d(r,sci)≤d(r,scj)可知,數據集R到劃分點sci歐氏距離最近的一群點r構成了Pri,而歐氏距離是相似性度量,即Pri與劃分點sci相似程度更大;劃分點sci位于數據分布的平均位置,所以Pri集合構成了均勻分區Pi的所有點。Pri的選取過程就是對數據集R所在空間的超平面劃分,可以用Pri對數據進行均勻劃分。證畢。
算法2 數據分區算法
輸入:數據集合R;支撐點數量n;數據分區數m。
輸出:數據分區Pi。
function partitioning(R,n,m)
sample R to get Rs;
Sp=LOF(Rs); //從采樣數據集中選取支撐點候選集
Sm=?;
while Sm|lt;n do
select sm form Sp with the maximal DPP(Sm);
Sm=Sm∪{sm} and Sp=Sp-{sm};
use Sm to map Rs to Rv; //利用支撐點將原始空間映射到向量空間
compute SFC(rv), rv∈Rv;
partition SFC(rv) according m;
select first object in each partition to Sc;
for each r in R do
compute the d(r,sc) for any sc∈Sc;
push r into its corresponding Pri; // 定理5
Pi=Pri;
return Pi(1≤i≤m).
2.4 并行聚類
對數據進行均勻分區后,將劃分好的數據塊輸入MapReduce任務進行并行聚類。目前基于MapReduce的K-means算法在進行并行聚類時需要對質心初始化,而不當的初始質心會使算法陷入局部最優,因此算法對初始質心的選取十分敏感。由于SSA全局搜索能力好、尋優能力強,所以考慮引入SSA改善并行K-means算法對初始質心的敏感問題,但該算法在迭代過程中的多樣性會逐漸下降,可能過早收斂,為此,本文提出非均勻變異麻雀搜索算法MSSA,使用MSSA優化質心尋優過程并得到最終聚類結果。
2.4.1 MSSA算法
1)引領麻雀搜索 SSA中,引領麻雀帶領整個種群運動,達到預警值后會引領麻雀種群重新搜索,能很好地跳出局部最優;但未達到預警值前,隨著算法的迭代,多樣性會逐漸下降。為了使算法始終保持全局搜索能力,提出非均勻變異引領麻雀X′ij對生成的引領麻雀Xij的第j維分量進行非均勻變異。
定理6 非均勻變異引領麻雀X′ij。已知Δ(t,y)為非均勻變異算子,UB、LB分別是Xij的上下界,t為迭代次數,非均勻變異引領麻雀X′ij為
證明 由Δ(t,y)=y·(1-r(1-t/T)b)易知,隨著迭代次數t的增加,r(1-t/T)b越來越大,(1-r(1-t/T)b)越來越小,Δ(t,y)的返回值逐漸從y到0。換言之,迭代初期X′ij被劇烈擾動,具有很強的全局搜索能力;隨著算法不斷進化,X′ij搜索半徑縮小,避免了不利變異的同時加快了收斂速度,所以非均勻變異引領麻雀X′ij有效。證畢。
2)隨從麻雀跟隨 SSA中,隨從麻雀直接跳躍到當前最優解附近,當引領麻雀位置不佳時,算法快速向局部最優收斂,不利于算法獲取全局最優。因此利用自適應系數對隨從麻雀跟隨過程進行改進,提出自適應隨從麻雀Xt+1ij。
定理7 自適應隨從麻雀Xt+1ij。已知第t次迭代的最佳位置Xtp,A=2αt-αt為自適應系數,αt是關于迭代次數t遞減的變量,從2線性遞減到0,為[0,1]隨機數組成的向量,C為系數向量,則自適應隨從麻雀Xt+1ij為
證明 因為αt隨著迭代次數t的增加而減小,所以自適應系數A=2αt-αt同樣隨著迭代次數t的增加而減小;迭代初期A較大,A·|CXtp-Xtij|也較大,隨從麻雀的位置Xt+1ij向Xtp靠近得不積極,具有很強的隨機性,這符合算法初期需要全局搜索能力的需求。隨著算法不斷進化,隨從麻雀的位置Xt+1ij逐漸跟緊Xtp,避免了不利變異的同時加快了收斂速度,所以自適應隨從麻雀Xt+1ij有效。證畢。
MSSA算法流程為:a)麻雀種群初始化;b)計算麻雀種群的適應度,并選擇出最佳位置和最差位置;c)根據適應度值選取引領麻雀和隨從麻雀,使用式(4)更新引領麻雀位置,再利用式(13)進行擾動,隨后分別使用式(14)(6)更新隨從麻雀、預警麻雀的位置;d)重新計算麻雀適應度;e)判斷是否達到結束條件,沒有達到則轉向步驟b),達到則算法結束。
2.4.2 并行聚類
提出MSSA后,可以利用MSSA全局搜索能力好、尋優能力強的性能結合并行K-means共同處理數據,最終實現并行聚類。具體步驟如下。
a)將數據集看成一群麻雀S={s1,s2,…,sn},初始化基本參數:種群規模N,引領麻雀數量PD,預警麻雀數量SD,預警值R2,最大迭代次數T。
b)在MapReduce框架進行并行劃分聚類。在map階段,以引領麻雀下標號為key,并行計算其他麻雀到引領麻雀的歐氏距離為value,并將組成的〈key,value〉鍵值對傳入reduce任務;reduce階段則根據map結果計算出每只麻雀對應的質心。
c)在MapReduce框架并行計算每只麻雀的適應度,適應度大小取麻雀到質心的距離的倒數。計算適應度時以引領麻雀下標號為key,適應度大小為value,根據適應度進行排序。
d)選取適應度最優的前PD只麻雀作為引領麻雀,其余為隨從麻雀。使用式(4)并行更新引領麻雀位置后使用式(13)擾動,再根據式(14)并行更新隨從麻雀的位置。
e)隨機選取SD只麻雀為預警麻雀,以預警值R2為判定條件對種群預警,并按式(6)并行更新位置。
f)一次迭代完成后,判斷是否達到最大迭代次數,沒有達到最大迭代次數則轉向步驟b),達到最大迭代次數即算法結束,輸出最終聚類結果。
2.5 MR-MSKCA整體流程
a)在數據降維階段,輸入數據集R,利用KCCW計算R的特征權重,得到權重數據集X;再構建DSAE對特征X提取得到低維數據集X′。
b)在數據分區階段,讀取X′并使用UPS進行數據分區,得到數據分布均勻的數據塊保存至HDSF。
c)在并行聚類階段,讀取HDSF上劃分好的數據塊,啟動MapRuduce,結合MSSA進行并行K-means任務,輸出聚類結果。
MR-MSKCA的整體流程如圖4所示。
2.6 時間復雜度分析
MR-MSKCA的時間復雜度主要由數據降維、數據分區、并行聚類三部分構成,下面對各階段分別進行分析。
a)數據降維階段的時間復雜度主要取決于特征加權與特征提取。進行特征加權的時間開銷主要為KCCW的計算以及對特征進行加權;進行特征提取的時間開銷主要為DSAE的訓練和自適應懲罰系數λ的計算。設n為數據集大小,d為數據集維度,a為DSAE的層數,b為DSAE中間節點數,c為訓練次數,則數據降維的時間復雜度為
b)數據分區階段的時間復雜度主要取決于支撐點映射、映射以及數據分區。進行支撐點映射的時間開銷主要為利用支撐點對采樣集進行映射;進行SFC映射的時間開銷主要為對支撐點映射后的數據集進行SFC值計算與分區;進行數據分區的時間開銷主要為對數據進行廣義超平面劃分。設Q為采樣集,P為支撐點數量,m為分區數量,則數據分區的時間復雜度為
c)并行計算階段的時間復雜度主要取決于K-means聚類的相似度計算,設質心個數為k,迭代次數為j,則并行聚類的時間復雜度為
綜上,MR-MSKCA的時間復雜度為
其中:d,a,b,clt;lt;n;Qlt;n;j,klt;lt;n。因此MR-MSKCA的復雜度可近似為
對于MR-KNMF算法,數據降維階段采用了非負矩陣分解,假設非負矩陣分解迭代次數為t,則該算法數據降維階段時間復雜度為O(tn2);數據分區和并行聚類階段時間復雜度近似為O(n);最終MR-KNMF的時間復雜度近似為O(n2)gt;gt;TMR-ISKCA,所以MR-MSKCA算法的時間復雜度低于MR-KNMF算法。
對于MR-PGDLSH,數據分區階段的時間復雜度為O(n);并行聚類階段的時間復雜度為O(log n/m);但選取初始質心進行了數據點的迭代計算,時間復雜度為O(n2),最終MR-PGDLSH的時間復雜度近似為O(n2)gt;gt;TMR-ISKCA,所以MR-MSKCA算法的時間復雜度低于MR-PGDLSH算法。
對于MR-GAPKCA算法,數據分區階段的時間復雜度與MR-MSKCA相似為O(nlog n);在并行聚類階段,由于該算法選擇了遺傳算法優化K-means,使得局部尋優能力下降,所以其迭代次數遠大于MR-MSKCA算法,導致并行聚類時時間復雜度gt;gt;O(jk2n/m),所以MR-MSKCA算法的時間復雜度低于MR-GAPKCA算法。
3 實驗與分析
3.1 實驗準備
本文的實驗環境設置為:包含一個master節點和三個slaver節點的Hadoop運算集群,所有主機的CPU均為8核處理器,16 GB內存,512 GB硬盤。每臺主機安裝的Hadoop版本為2.7.7,操作系統為CentOS 6.0,JDK版本為1.8.0,主機之間通過1 GBps以太網連接。表1介紹了各節點配置情況。
本文的實驗數據集選自UCI公開數據集,分別是Drug Review、Covertype、Daily Sport。其中,Drug Review是來自患者對特定藥物的十星評價以及相關情況的數據集;Covertype是美國羅斯福國家公園四個區域的森林數據;Daily Sport是安裝在人體不同部位的五個傳感器記錄到實驗者日常運動的數據集,Daily Sport+由Daily Sport擴展得到,數據樣本擴充至400 000。數據集的具體情況如表2所示。
同時對于上述數據集,本文按表3構建了DASE。表中DSAE的節點數需隨層數的增加逐層遞減,以降低數據維度。對于特征較少的數據,數據維度本身不大,DSAE層數設置較小即可;對于特征多的數據如Daily Sport,需要構建多層神經網絡以應對高維度數據的降維需求[20],但層數過高會過濾一些有用的特征信息,影響最終聚類效果,本文選取四層神經網絡進行特征提取效果最佳。
3.2 評價指標
1)加速比 加速比通過計算單個節點運算時間與并行計算的運行時間的比值來驗證并行計算的性能。其定義如下:
其中:T1表示算法在單節點上的運行時間;TP表示并行計算的運行時間。
2)NMI 標準互信息(normalized mutual information,NMI)通過計算兩個概率分布的互信息并將其標準化,從而評估兩個數據集分布的吻合程度。其定義如下:
其中:I(X,Y)為向量X、Y之間的互信息;H(X)和H(Y)分別表示X和Y的香農熵。
3.3 算法可行性比較分析
3.3.1 MSSA可行性分析
為驗證MSSA的可行性和優越性,在五個不同的基準測試函數上對遺傳算法GA、自適應布谷鳥算法ACS、基本SSA、融合柯西變異和反向學習的麻雀搜索算法ISSA[21]、混沌麻雀搜索算法CSSA[22]和MSSA進行仿真實驗,基準測試函數信息如表4所示。
為了實驗的公平性,各算法的種群規模N均取30;引領麻雀PD和預警麻雀SD的取值范圍一般占種群的10%~20%[22],本文PD和SD均取20%;非均勻變異上下界UB和LB的取值即為測試基準函數的取值范圍上下界。由于不同算法的全局開發能力和跳出局部最優能力存在差異,為了驗證所有算法的尋優精度,最大迭代次數T=100較為合適;目標函數維度d影響了算法的尋優性能,為了驗證算法的勘探性能,d取30;為避免結果的偶然性,選取各算法在基準測試函數上獨立運行30次的平均值和標準差為最終結果,實驗結果如表5所示。
從表5可以看出,MSSA在不同基準函數上的平均值與標準差始終低于GA、ACS、SSA、ISSA、CSSA,MSSA的收斂精度與算法穩定性明顯優于GA、ACS、SSA、ISSA和CSSA。在多維高峰的測試函數F3~F5上,MSSA的標準差分別為1.471 2E-42、1.031 7E-25、1.347 7E-23,遠小于其他五種算法,原因在于高維多峰函數存在較多局部極值點,而其他五種算法的全局搜索能力有限,易陷入局部最優。MSSA提出了非均勻變異引領麻雀,利用非均勻變異算子擾動引領麻雀的位置,利于算法跳出局部最優獲取全局最優解;在基準測試函數F1、F2上,MSSA的平均值為0.0、2.534 5E-45,達到理論最優值和接近理論最優值,表現出極高的收斂精度和穩定性。因此, MSSA比GA、ACS、SSA、ISSA、CSSA在全局尋優能力和算法穩定性方面都表現出更好的性能。
3.3.2 MR-MSKCA可行性分析
為驗證MR-MSKCA聚類的可行性,本文采用加速比來進行衡量,對MR-MSKCA在Drug Review、Covertype、Daily Sport、Daily Sport+四個數據集上進行測試。實驗進行10次,取均值作為最后結果,實驗結果如圖5所示。
實驗表明,MR-MSKCA在四個數據集上的加速比隨著節點數的增加而增加。在Drug Review上,算法加速比分別增加了0.75、0.47、0.24;在Covertype上,算法加速比分別增加了0.82、0.54、0.32; 在Daily Sport上,算法加速比分別增加了0.89、0.67、0.40;在Daily Sport+上,算法加速比分別增加了0.95、0.79、0.49。由上述變化可知,在數據規模最大的Daily Sport+上,算法加速比隨節點增加最為明顯。主要原因在于:a)MR-MSKCA利用UPS策略劃分數據,保證各節點間負載均衡,極大地提高了并行處理效率;b)MR-MSKCA采用DRKCAE降維策略處理冗余特征,獲取了低維稀疏數據,減少了節點間交互的數據量,提升了算法的并行性能。隨著數據規模增大,并行性能優勢放大,MR-MSKCA的加速比提升更大,這也表明MR-MSKCA適用于大數據,并且能很好地處理高維數據。
3.3.3 MR-MSKCA聚類過程分析
由于Daily Sport+數據集具有樣本多和特征多的特點,能夠有效地模擬大數據環境,所以本文選取在Daily Sport+上的實驗數據對MR-MSKCA進行聚類過程分析。為了有直觀的觀察效果,將實驗數據隨機采樣后投影到三維空間。如圖6(a)所示,數據降維之前,數據分布在三維空間的邊緣,MR-MSKCA首先使用DRKCAE策略進行特征降維,如圖6(b)所示,數據開始向空間中心集中,說明DRKCAE策略有效地將高維數據進行降維處理,改善高維數據結構稀疏的問題;接著,MR-MSKCA使用UPS策略劃分數據集,圖6(c)顯示了其中某個分區的數據分布情況,可以看到數據呈均勻分布,有效地解決了負載傾斜的問題;最后,圖6(d)所示,MR-MSKCA準確地將Daily Sport+分為五個類簇,完成并行聚類。
3.4 算法性能比較分析
3.4.1 聚類效果
為了驗證MR-MSKCA的聚類效果,本文在Drug Review、Covertype、Daily Sport、Daily Sport+四個數據集下分別對MR-MSKCA、MR-KNMF、MR-PGDLSH、MR-GAPKCA的NMI值進行比較。實驗進行10次,取均值作為最后結果,實驗結果如表6所示。
實驗表明,隨著數據集特征維度的增加,NMI值逐漸減小,但MR-MSKCA始終表現最佳,并且這種趨勢隨著特征維度和數據集規模的增大而增大。在特征維度小的數據集Drug Review上,MR-MSKCA的NMI值相比MR-KNMF、MR-PGDLSH、MR-GAPKCA分別高出2.0%、2.8%、3.2%,可見差異并不明顯;在特征維度適中的數據集Covertype上,MR-MSKCA的NMI值相比MR-KNMF、MR-PGDLSH、MR-GAPKCA分別高出6.2%、7.5%、9.6%,差距逐漸顯現;而在特征維度大的Daily Sport+上,MR-MSKCA的NMI值相比MR-KNMF、MR-PGDLSH、MR-GAPKCA分別高出19.2%、22.8%、24%,差異顯著。產生這種現象的原因是:a)MR-MSKCA設計了DRKCAE策略對數據進行降維,有效地對高維數據進行降維處理,避免了不相關特征的影響,提升了聚類效果;b)MR-MSKCA利用MSSA避免質心敏感,增強了算法的全局搜索能力,進一步提升了聚類效果。在特征維度較小的數據集上,維度及初始質心對聚類效果的影響不大,導致聚類效果提升有限,NMI值差異不大,而在特征維度很大的數據集Daily Sport 和Daily Sport+上,MR-MSKCA的NMI值明顯高于其他三種算法;同時表明,MR-MSKCA通過DRKCAE策略和MSSA尋優擁有更好的聚類效果,相較其他三種算法表現出更好的聚類性能。
3.4.2 算法運行時間
將MR-MSKCA、MR-KNMF、MR-PGDLSH、MR-GAPKCA算法分別在Drug Review、Covertype、Daily Sport、Daily Sport+四種數據集上進行對比實驗,根據算法的運行時間進行分析。實驗結果如圖7所示。
由圖7可見,算法的運行時間隨著數據集的數據量和特征的增大而增加。其中MR-MSKCA在四種數據集上的運行時間最少,并且在大規模高維數據上表現得更為明顯。在特征維度較小的Drug Review上,MR-MSKCA的運行時間相較其他三種算法分別降低了13.0%、17.6%、25%;在特征維度適中的Covertype上,MR-MSKCA的運行時間相較其他三種算法分別降低了22.8%、27.6%、34.4%;在數據量大和特征維度大的Daily Sport+上,MR-MSKCA的運行時間相較其他三種算法分別降低了45.1%、49.1%、59.8%。產生該結果的原因在于:a)MR-MSKCA設計了DRKCAE對數據進行降維,獲取低維高質量數據進行聚類,極大地降低了聚類的時間開銷;b)MR-MSKCA使用UPS分區策略對數據集進行了均勻分區,避免了節點負載不均衡,提升了運行速度;c)MR-MSKCA利用MSSA并行聚類加快了獲取局部最優的速度,減少迭代次數從而減少了運行時間。因此,MR-MSKCA能很好地適應大數據環境聚類需求,相較MR-KNMF、MR-PGDLSH、MR-GAPKCA算法,時間消耗始終最低。
3.4.3 算法加速比
為了驗證MR-MSKCA的并行化性能,本文在Drug Review、Covertype、Daily Sport、Daily Sport+四個數據集下分別對MR-MSKCA、MR-KNMF、MR-PGDLSH、MR-GAPKCA進行實驗,通過依次增加實驗節點,比較不同數量節點算法加速比的變化。實驗結果如圖8所示。
由圖8可知,在四個數據集下MR-MSKCA、MR-KNMF、MR-PGDLSH、MR-GAPKCA算法的加速比均隨著節點數量的增加而增大,其中MR-MSKCA的增加趨勢最為明顯,相較其他算法,MR-MSKCA在任一數據集上都保持著最大加速比。當四個節點同時運算時,MR-MSKCA在Drug Review數據集上的加速比其他三種算法分別增長了0.35、0.21、0.43;在Covertype數據集上比其他三種算法分別增長了0.43、0.25、0.53;在Daily Sport數據集上比其他三種算法分別增長了0.61、0.33、0.58;在Daily Sport+數據集上比其他三種算法分別增長了0.75、0.45、0.69。產生這些現象的原因在于:a)MR-MSKCA采用UPS策略均勻劃分數據集,保證了節點的負載均衡;b)MR-MSKCA采用DRKCAE策略降維,避免了冗余特征的計算,一定程度上減少了節點間交互的數據量,提升了算法的并行性能。隨著節點數量增多,并行優勢逐漸增加,使得MR-MSKCA相比MR-KNMF、MR-PGDLSH、MR-GAPKCA的加速比增長趨勢更為明顯,而MR-KNMF、MR-GAPKCA均未考慮節點負載均衡,使得節點間計算量不平衡,導致算法的并行效率下降。對于MR-PGDLSH,由于其采取了負載均衡策略,相較MR-KNMF、MR-GAPKCA的并行效率有所提升,但其聚類過程的迭代方式具有局限性,一定程度上限制了算法并行性能。綜上,MR-MSKCA加速比性能優于另外三種算法,在大規模高維數據集上表現出良好的并行性能。
4 結束語
針對大數據環境下傳統并行K-means算法存在的面對高維數據聚類效果差、數據劃分不均勻以及初始質心敏感的問題,本文提出基于MapReduce和MSSA的并行K-means算法MR-MSKCA。為驗證MR-MSKCA的聚類能力,在Drug Review、Covertype、Daily Sport、Daily Sport+四個數據集上分別對MR-MSKCA、MR-KNMF、MR-PGDLSH、MR-GAPKCA的綜合性能進行比較,實驗結果表明,MR-MSKCA在大數據環境下能高效地完成聚類任務,其聚類效果最好、收斂速度最快。
雖然MR-MSKCA在并行K-means聚類任務方面取得了一定的進步,但仍然存在技術局限性。首先,MR-MSKCA僅依靠實驗經驗獲取聚類質心數、DSAE隱含層數、支撐點數等參數,并不適用于全部的實際應用場景;此外高維數據往往存在各種復雜的聚簇結構,MR-MSKCA選取傳統的K-means目標函數聚類有一定的局限性。接下來將嘗試使MR-MSKCA支持上述參數的自動調優,同時修改K-means的目標函數以進一步提升MR-MSKCA的性能。
參考文獻:
[1]Duran B S,Odell P L. Cluster analysis: a survey [M]. Berlin: Springer-Verlag,1974.
[2]Rizzo S,Botta F,Raimondi S,et al. Radiomics: the facts and the challenges of image analysis [J]. European Radiology Experimental,2018,2(11): article No. 36.
[3]Sinaga K P,Yang Minshen. Unsupervised K-means clustering algorithm [J]. IEEE Access,2020,8: 80716-80727.
[4]Oswald C,Haritha E,Raja A A,et al. An efficient and novel data clustering and run length encoding approach to image compression [J]. Concurrency and Computation: Practice and Experience,2021,33(10): e6185.
[5]Wang Haoxiang,Smys S. Big data analysis and perturbation using data mining algorithm [J]. Journal of Soft Computing Paradigm,2021,3(1): 19-28.
[6]Hashem I A T,Anuar N B,Marjani M,et al. MapReduce scheduling algorithms: a review [J]. Journal of Supercomputing,2020,76(7): 4915-4945.
[7]Zhao Weizhong,Ma Huifang,He Qing. Parallel K-means clustering based on MapReduce [C]// Proc of IEEE International Conference on Cloud Computing. Washington DC: IEEE Computer Society,2009: 674-679.
[8]Li Qiuhong,Wang Peng,Wang Wei,et al. An efficient K-means clustering algorithm on MapReduce [C]// Proc of International Confe-rence on Database Systems for Advanced Applications. Cham: Sprin-ger,2014: 357-371.
[9]Lydia E L,Ramya D. Text mining with lucene and Hadoop: document clustering with updated rules of NMF non negative matrix factorization [J]. International Journal of Pure and Applied Mathematics,2018,118(7): 191-198.
[10]Mao Yiming,Gan Dejing,Mwakapesa D S,et al. A MapReduce-based K-means clustering algorithm [J]. Journal of Supercomputing,2022,78(4): 5181-5202.
[11]Gavagsaz E,Rezaee A,Javadi H H S. Load balancing in reducers for skewed data in MapReduce systems by using scalable simple random sampling [J]. Journal of Supercomputing,2018,74(7): 3415-3440.
[12]冀素琴,石洪波. 面向海量數據的K-means聚類優化算法 [J]. 計算機工程與應用,2014,50(14): 143-147. (Ji Suqin,Shi Hongbo. Optimized K-means clustering algorithm for massive data [J]. Computer Engineering and Applications,2014,50(14): 143-147.)
[13]李曉瑜,俞麗穎,雷航,等. 一種K-means改進算法的并行化實現與應用[J]. 電子科技大學學報,2017,46(1): 61-68. (Li Xiaoyu,Yu Liying,Lei Hang,et al. Parallel implementation and application of an improved K-means algorithm [J]. Journal of University of Electronic Science and Technology of China,2017,46(1): 61-68.)
[14]王波,余相君. 自適應布谷鳥搜索的并行K-means聚類算法 [J]. 計算機應用研究,2018,35(3): 675-679. (Wang Bo,Yu Xiangjun. Parallel K-means clustering algorithm based on adaptive cuckoo search [J]. Application Research of Computers,2018,35(3): 675-679. )
[15]Alshammari S,Zolkepli M B,Abdullah R B. Genetic algorithm based parallel K-means data clustering algorithm using MapReduce programming paradigm on Hadoop environment (GAPKCA) [C]// Proc of the 4th Annual International Conference on Soft Computing and Data Mining. Cham: Springer,2020: 98-108.
[16]Moon B,Jagadish H V,Faloutsos C,et al. Analysis of the clustering properties of the Hilbert space-filling curve [J]. IEEE Trans on Knowledge and Data Engineering,2001,13(1): 124-141.
[17]Bustos B,Navarro G,Chávez E. Pivot selection techniques for proxi-mity searching in metric spaces [J]. Pattern Recognition Letters,2003,24(14): 2357-2366.
[18]Breunig M M,Kriegel H P,Ng R T,et al. LOF: identifying density-based local outliers [C]// Proc of ACM SIGMOD International Confe-rence on Management of Data.New York:ACM Press,2000:93-104.
[19]Traina C,Filho R F S,Traina A J M,et al. The Omni-family of all-purpose access methods: a simple and effective way to make similarity search more efficient [J]. The VLDB Journal,2007,16(4): 483-505.
[20]Su Yuanchao,Li Jun,Plaza A,et al. DAEN: deep autoencoder networks for hyperspectral unmixing [J]. IEEE Trans on Geoscience and Remote Sensing,2019,57(7): 4309-4321.
[21]毛清華,張強. 融合柯西變異和反向學習的改進麻雀算法 [J]. 計算機科學與探索,2021,15(6): 1155-1164. (Mao Qinghua,Zhang Qiang. Improved sparrow algorithm combining Cauchy mutation and opposition-based learning [J]. Journal of Frontiers of Computer Science amp; Technology,2021,15(6): 1155-1164. )
[22]Wang Peng,Zhang Yu,Yang Hongwan. Research on economic optimization of microgrid cluster based on chaos sparrow search algorithm [J]. Computational Intelligence and Neuroscience,2021,2021: article ID 5556780.