趙艷萍+徐勝超
摘 要: 為了提高傳統(tǒng)數(shù)據(jù)聚類算法在大數(shù)據(jù)挖掘應(yīng)用中的性能,借助云計(jì)算的相關(guān)技術(shù),并結(jié)合非負(fù)矩陣分解方法設(shè)計(jì)并實(shí)現(xiàn)了一種并行的數(shù)據(jù)層次聚類算法。該算法采用MapReduce編程平臺(tái),利用Hadoop的HDFS存儲(chǔ)大容量的電信運(yùn)營(yíng)商數(shù)據(jù);描述了MapReduce的數(shù)據(jù)分級(jí)聚類并行處理的工作機(jī)制與流程;通過(guò)Map和Reduce這種主?從編程模式很方便地使數(shù)據(jù)分級(jí)聚類的子任務(wù)在Hadoop的PC集群上運(yùn)行。實(shí)驗(yàn)結(jié)果表明,該方法比傳統(tǒng)用于數(shù)據(jù)聚類的非負(fù)矩陣方法具有更好的運(yùn)行時(shí)間與加速比,能夠在可以接受的時(shí)間范圍內(nèi)完成電信運(yùn)營(yíng)商的大數(shù)據(jù)處理。
關(guān)鍵詞: 云計(jì)算; 分級(jí)聚類; MapReduce; 非負(fù)矩陣分解; 聚類算法; 并行數(shù)據(jù)
中圖分類號(hào): TN911.1?34; TP393.03 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)05?0056?05
Abstract: In order to improve the performance of traditional data clustering methods on big data mining application, a parallel data hierarchical clustering algorithm was designed and realized by means of the correlation technologies of cloud computing and non?negative matrix factorization (NMF) method. The MapReduce programming platform is used in the algorithm. The HDFS (Hadoop distributed file system) based on Hadoop is used to store the large?capacity data of telecom operators. The working mechanism and flow of data hierarchical clustering based on MapReduce are described in detail. The master?slave programming mode based on Map and Reduce makes the subtask of data hierarchical clustering operating on PC clusters based on Hadoop easily. The experimental results show that, in comparison with the traditional non?negative matrix method used in data clustering, the proposed method has shorter run time and smaller speedup ratio, and can realize the big data processing of telecom operator within the acceptable time.
Keywords: cloud computing; hierarchical clustering; MapReduce; non?negative matrix factorization; clustering algorithm; parallel data
0 引 言
近年來(lái)移動(dòng)互聯(lián)網(wǎng)與物聯(lián)網(wǎng)的急速發(fā)展積累了大量的數(shù)據(jù)資源,這些海量數(shù)據(jù)中蘊(yùn)藏著大量可以應(yīng)用于個(gè)性化商務(wù)的有效信息[1?3],然而傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)是主要應(yīng)用于中小規(guī)模數(shù)據(jù)中的信息挖掘,為了從海量數(shù)據(jù)資源中挖掘出有用信息,必須采用新型的數(shù)據(jù)挖掘技術(shù),其中基于多維數(shù)據(jù)相似性的數(shù)據(jù)聚類作為一種新型數(shù)據(jù)挖掘技術(shù)正好解決上述問(wèn)題。
非負(fù)矩陣分解NMF(Non?negative Matrix Factorization)方法在多維數(shù)據(jù)相似性的數(shù)據(jù)聚類、文本聚類、社交網(wǎng)絡(luò)聚類中都得到了廣泛應(yīng)用,但其串行計(jì)算的時(shí)間復(fù)雜度較高,很難勝任大數(shù)據(jù)處理任務(wù)。早期在多維數(shù)據(jù)相似性的數(shù)據(jù)聚類并行處理領(lǐng)域中,有集群計(jì)算機(jī)與共享內(nèi)存計(jì)算的方式,還有網(wǎng)格計(jì)算、對(duì)等計(jì)算、廣域分布式計(jì)算等模式,這些模型都取得了很好的成果。但是在云計(jì)算、大數(shù)據(jù)時(shí)代,前期的分布式計(jì)算模式對(duì)海量的PB級(jí)的數(shù)據(jù)處理往往顯得不足[4?5],所以基于云計(jì)算的數(shù)據(jù)分級(jí)聚類應(yīng)該得到足夠的重視[6]。因此本文試圖探索利用云計(jì)算方式優(yōu)化傳統(tǒng)的基于非負(fù)矩陣分解的數(shù)據(jù)相似性聚類方法。
云計(jì)算中的MapReduce技術(shù)[7]最早被Google用于大數(shù)據(jù)并行處理,其基本思想是將大數(shù)據(jù)集分解為成百上千的小數(shù)據(jù)集splits,采用Mapper和Reducer形式的類似主?從(Master?Slave)模式的并行處理。這一方法由于可以實(shí)現(xiàn)海量數(shù)據(jù)的并行處理,通過(guò)PC機(jī)就可以實(shí)現(xiàn)大型機(jī)才能完成的計(jì)算任務(wù),因此近年來(lái)得到了廣泛應(yīng)用。
本文以基于非負(fù)矩陣分解的高維數(shù)據(jù)相似性聚類算法作為研究對(duì)象,以某電信運(yùn)營(yíng)商的大容量數(shù)據(jù)作為實(shí)驗(yàn)對(duì)象,設(shè)計(jì)了一種層次聚類方法并實(shí)現(xiàn)了數(shù)據(jù)聚類方法的MapReduce并行化,同時(shí)將該算法在Hadoop平臺(tái)上進(jìn)行實(shí)驗(yàn)和評(píng)估,最后的實(shí)驗(yàn)結(jié)果驗(yàn)證了該算法的高效性與可擴(kuò)展性。
1 預(yù)備知識(shí)
1.1 高維數(shù)據(jù)相似性聚類與非負(fù)矩陣分解
相似性聚類[8]是基于數(shù)據(jù)在不同維度上的相似程度而對(duì)數(shù)據(jù)進(jìn)行分類,兩個(gè)數(shù)據(jù)點(diǎn)是否歸于同一類,判斷它們的相似度如何。當(dāng)它們之間的相似度大于某一值時(shí),則歸于同一聚類;否則,兩個(gè)數(shù)據(jù)點(diǎn)則分屬不同的聚類。endprint
由于實(shí)際問(wèn)題中大規(guī)模數(shù)據(jù)的存在,使得存儲(chǔ)這類大數(shù)據(jù)的矩陣非常龐大,且存放的信息分布不均勻,導(dǎo)致現(xiàn)有方法很難高效快速地處理矩陣存放的數(shù)據(jù)。為了更好地處理這類數(shù)據(jù),一類有效的方法是對(duì)矩陣進(jìn)行分解,從而使得描述問(wèn)題的維度大大消減,同時(shí)也能夠?qū)?shù)據(jù)進(jìn)行壓縮和概括。針對(duì)這一點(diǎn),目前已有很多矩陣分解方法,如奇異值分解、獨(dú)立成分分析、主成分分析等。基于非負(fù)矩陣分解[9]的聚類分析所輸出的分解結(jié)果可以保證其元素非負(fù),代表真實(shí)的物理意義,因此近年來(lái)得到特別關(guān)注。
基于非負(fù)矩陣分解NMF的聚類[10]方法如下:考慮到數(shù)據(jù)集可以表示為一個(gè)向量集而每一個(gè)向量代表維數(shù)據(jù)點(diǎn), NMF方法的目的是將劃分為兩個(gè)非負(fù)低秩矩陣和可通過(guò)盡量?jī)?yōu)化如下公式實(shí)現(xiàn):
根據(jù)文獻(xiàn)[10],可以通過(guò)以下的乘法更新規(guī)則得到:
經(jīng)過(guò)迭代處理后,得到大小為的網(wǎng)絡(luò)的分割矩陣,其中第行對(duì)應(yīng)第個(gè)單元在聚類類型中的成員關(guān)系。進(jìn)一步將標(biāo)準(zhǔn)化,使這樣就對(duì)應(yīng)于第個(gè)單元屬于第個(gè)數(shù)據(jù)聚類的后驗(yàn)概率。
1.2 MapReduce編程模型
Hadoop是一個(gè)分布式系統(tǒng)基礎(chǔ)框架,它的核心是分布式文件系統(tǒng)機(jī)制HDFS(Hadoop Distributed File System)和MapReduce的主?從模式(Master?Slave)的編程機(jī)制。MapReduce框架由JobTracker和TaskTracker共同組成,它們分別擔(dān)任管理節(jié)點(diǎn)和執(zhí)行任務(wù)節(jié)點(diǎn)的角色,這兩個(gè)有機(jī)結(jié)合,從而實(shí)現(xiàn)MapReduce的正常運(yùn)轉(zhuǎn),保證任務(wù)的執(zhí)行。
MapReduce數(shù)據(jù)相似性聚類并行處理的工作機(jī)制與流程如圖1所示,具體步驟如下:
1) 對(duì)輸入的大數(shù)據(jù)文件進(jìn)行設(shè)置與切片;
2) 主節(jié)點(diǎn)(Master)調(diào)度從屬節(jié)點(diǎn)(Worker)執(zhí)行Map子任務(wù);
3) 從屬節(jié)點(diǎn)讀取輸入源片段;
4) 從屬節(jié)點(diǎn)執(zhí)行Map子任務(wù),并將臨時(shí)結(jié)果文件保存在本地;
5) 主節(jié)點(diǎn)調(diào)度從節(jié)點(diǎn)執(zhí)行Reduce子任務(wù),Reduce階段的從屬節(jié)點(diǎn)讀取Map子任務(wù)的輸出文件;
6) 執(zhí)行Reduce子任務(wù),將最后的結(jié)果保存到HDFS分布式文件系統(tǒng)中。
有了這6個(gè)步驟,數(shù)據(jù)分級(jí)聚類的編程人員就可以擺脫本身分布式計(jì)算的編程細(xì)節(jié),可以使用高級(jí)語(yǔ)言在規(guī)定時(shí)間內(nèi)完成大規(guī)模的數(shù)據(jù)分級(jí)聚類。
另外,要實(shí)現(xiàn)本文的并行數(shù)據(jù)聚類算法,必須用到Hadoop的開(kāi)源實(shí)現(xiàn),目前比較好的是Apache的Hadoop實(shí)現(xiàn),訪問(wèn)地址為http://hadoop.apache.org/,Apache的Hadoop基于Java環(huán)境,它實(shí)現(xiàn)了HDFS文件系統(tǒng)和MapReduce。用戶只要繼承MapReduceBase,提供分別實(shí)現(xiàn)Map和Reduce的兩個(gè)類,并注冊(cè)Job即可實(shí)現(xiàn)自動(dòng)分布式運(yùn)行。
2 NMF算法的MapReduce并行化實(shí)現(xiàn)
2.1 基于非負(fù)矩陣分解的并行式分級(jí)聚類
現(xiàn)有的基于相似性的數(shù)據(jù)聚類往往根據(jù)任意兩個(gè)高維數(shù)據(jù)在各個(gè)維度上的歐幾里德距離的緊密程度將數(shù)據(jù)劃分為幾個(gè)不同的聚類,屬于同一聚類的數(shù)據(jù)之間的相似度較高,屬于不同聚類的數(shù)據(jù)之間的相似度相對(duì)較低。然而這一方法的局限在于,無(wú)法像模塊度算法[11]那樣計(jì)算聚類的模塊度;無(wú)法對(duì)聚類內(nèi)部的相似程度進(jìn)行排序。
因此,提出基于合適的相似性度量指標(biāo)來(lái)構(gòu)建高維數(shù)據(jù)的相似性矩陣,通過(guò)對(duì)數(shù)據(jù)集的相似性矩陣進(jìn)行非負(fù)矩陣分解來(lái)聚類相似程度較高的數(shù)據(jù)集合,將新的聚類視為新的數(shù)據(jù)點(diǎn),從而在縮小數(shù)據(jù)規(guī)模的同時(shí)增加數(shù)據(jù)的維度,然后重新計(jì)算當(dāng)前數(shù)據(jù)的相似性矩陣進(jìn)行非負(fù)矩陣分解,反復(fù)迭代,直至得到一個(gè)較優(yōu)的聚類序列。在這一計(jì)算過(guò)程中,計(jì)算量較大的階段是反復(fù)計(jì)算數(shù)據(jù)點(diǎn)彼此之間的相似程度。由于數(shù)據(jù)是多維的,其相似程度往往需要用給定維度數(shù)值的歐幾里德距離或余弦相似性來(lái)描述,在重構(gòu)相似性矩陣時(shí)的計(jì)算量非常大,因此,本文在此階段借用MapReduce分布式編程模型的優(yōu)勢(shì),極大地提高了計(jì)算效率。
2.2 基于MapReduce的并行數(shù)據(jù)處理
首先是大數(shù)據(jù)存儲(chǔ)的問(wèn)題,可以參考利用HDFS來(lái)管理這些海量數(shù)據(jù)。HDFS的設(shè)計(jì)本質(zhì)上是為了大量的數(shù)據(jù)能橫跨成百上千臺(tái)機(jī)器,但是看到的是一個(gè)文件系統(tǒng)而不是很多文件系統(tǒng),對(duì)用戶透明。例如,MapReduce系統(tǒng)要獲取/hdfs/tmp/file1的數(shù)據(jù),程序設(shè)計(jì)中引用的是一個(gè)文件路徑,但是實(shí)際的數(shù)據(jù)存放在很多不同的機(jī)器上。HDFS為用戶管理這些海量數(shù)據(jù),并通過(guò)MapReduce編程模式讓其在Hadoop集群上分布運(yùn)行[12]。
考慮到影響分級(jí)聚類算法性能的主要因素是如何計(jì)算高維數(shù)據(jù)彼此之間的相似性,由于該相似性需要同時(shí)度量單一數(shù)據(jù)點(diǎn)在多個(gè)數(shù)據(jù)維度上與其他所有數(shù)據(jù)點(diǎn)的差異,因此,很適合使用MapReduce進(jìn)行計(jì)算。給定迭代次數(shù),即分級(jí)次。級(jí)聚類算法表述如下:
步驟1: 將初始聚類序列分割為給定的個(gè)片段,對(duì)應(yīng)分配到個(gè)Map任務(wù),基于給定指標(biāo)計(jì)算聚類上下文的相似性,利用Reduce框架輸出各聚類對(duì)之間的相似性集合,重構(gòu)當(dāng)前聚類之間的相似性矩陣;
步驟2:輸入上一級(jí)聚類的相似性矩陣,基于非負(fù)矩陣分解輸出當(dāng)前對(duì)應(yīng)聚類ID的歸屬度。重構(gòu)當(dāng)前級(jí)別下的聚類序列,輸出當(dāng)前級(jí)別下的聚類集合;
步驟3: 重構(gòu)當(dāng)前聚類的上下文。重復(fù)步驟1, 步驟2共次;
步驟4:輸出最終分級(jí)聚類結(jié)果。
整個(gè)算法的框架圖如圖2所示。
利用本文非負(fù)矩陣分解的并行數(shù)據(jù)處理中Map函數(shù)相應(yīng)的偽代碼如下:
Input: text key,vector value
Output:
Begin
1: for i=0 to n (cluster sequence) do
2: t=findCatalog(i);
3: for all k(* textfile) do
4: distance=cosinedistance(k,ji);
5: context, write(key, vector(t,Distance));
6: end for
7: end for
End
Reduce函數(shù)相應(yīng)的偽代碼如下:
Input: text key, vector value
Output: text key, vector value, context context
Begin
1: for all key and value do
2: array list (vector(t,value));
3: sort(array list);
4: new arraylist result
5: if k 6: for i=0 to k do 7: result, add(key,arraylist.get(i)); 8: else 9: system.out,println(“no sufficient training smaples”) 10: context.write(key,tradition KNN(result)); 11: end for 12: end if End 在MapReduce編程模型中,HDFS將大數(shù)據(jù)分割成若干blocks,然后存儲(chǔ)在不同的節(jié)點(diǎn)上。每個(gè)節(jié)點(diǎn)根據(jù)Map函數(shù)指定的操作在本地完成相應(yīng)的功能。 3 實(shí)驗(yàn)結(jié)果與討論 3.1 實(shí)驗(yàn)數(shù)據(jù)的選取 作為積累大數(shù)據(jù)的典型行業(yè),電信行業(yè)積累了大量的手機(jī)用戶行為數(shù)據(jù),數(shù)據(jù)里包括用戶撥出電話的基站信息、通話時(shí)間、通話時(shí)長(zhǎng)等豐富信息。這些數(shù)據(jù)可以用來(lái)研究用戶之間形成的社交網(wǎng);另一方面,由于這些行為數(shù)據(jù)具有地理上下文,因此,也可以基于網(wǎng)絡(luò)理論結(jié)合地理屬性研究城市中不同區(qū)域之間的關(guān)系與功能。 然而,若將區(qū)域視為網(wǎng)絡(luò)中的點(diǎn),則區(qū)域覆蓋的基站的數(shù)據(jù)容量使得該點(diǎn)擁有極高的數(shù)據(jù)維度,具有上十萬(wàn)用戶、上百萬(wàn)的通話記錄數(shù),容量都是PB級(jí)的。如果用數(shù)據(jù)庫(kù)連接查詢以及普通的計(jì)算平臺(tái)來(lái)計(jì)算上述地理空間網(wǎng)絡(luò),效率會(huì)比較低,甚至難以接受超長(zhǎng)的時(shí)間,所以本文提取上述電信運(yùn)營(yíng)商數(shù)據(jù)作為實(shí)驗(yàn)環(huán)境,構(gòu)造空間網(wǎng)絡(luò)關(guān)系的平臺(tái)是Hadoop集群。 本文搭建的集群中共有8個(gè)節(jié)點(diǎn):1個(gè)Master節(jié)點(diǎn)和7個(gè)Slave節(jié)點(diǎn),所有節(jié)點(diǎn)的硬件配置如下:CPU型號(hào) 為Intel Xeon E5 3.5 GHz; 內(nèi)存設(shè)為 8 GB。硬盤容量設(shè)為1 TB; 這些節(jié)點(diǎn)之間通過(guò)局域網(wǎng)內(nèi)的100M網(wǎng)卡連接,具體信息如表1所示。 8個(gè)節(jié)點(diǎn)上均是RedHat系統(tǒng),其中Master機(jī)器主要配置NameNode和JobTracker,NameNode負(fù)責(zé)對(duì)文件系統(tǒng)的命名空間進(jìn)行管理,JobTracker負(fù)責(zé)任務(wù)的調(diào)度和分發(fā)。7個(gè)Slave機(jī)器主要配置DataNode和TaskTracker,DataNode負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行分布式存儲(chǔ),TaskTracker主要負(fù)責(zé)接收J(rèn)obTracker分發(fā)的任務(wù)并執(zhí)行具體的數(shù)據(jù)處理任務(wù)。 3.2 實(shí)驗(yàn)結(jié)果分析 利用某電信運(yùn)營(yíng)商的數(shù)據(jù),表2列出了利用本文的數(shù)據(jù)聚類分析并行處理后的計(jì)算結(jié)果,從實(shí)驗(yàn)結(jié)果可以看出,算法的測(cè)試結(jié)果符合預(yù)想的情況,在算法的步驟1階段,需要的時(shí)間比較長(zhǎng),差不多4 h,半個(gè)工作日內(nèi)能夠完成,并行處理基本能滿足實(shí)際大數(shù)據(jù)處理的需求,然而傳統(tǒng)的單機(jī)條件下需要30多個(gè)小時(shí)。在步驟3的階段比較短,雖然并行處理的時(shí)間超過(guò)了單機(jī)(因?yàn)橛辛送ㄐ砰_(kāi)銷),但是相對(duì)于算法的整個(gè)過(guò)程是不影響速度的。 以上是并行處理與串行單機(jī)的比較結(jié)果,步驟1~步驟3一共只要4個(gè)多小時(shí),而串行單機(jī)(一個(gè)節(jié)點(diǎn))要30多個(gè)小時(shí)。但是結(jié)果是與串行的比較,而不是并行單節(jié)點(diǎn)的比較(接下來(lái)看到一個(gè)Master,一個(gè)Slave共需要的時(shí)間是50 h左右)。 接著同時(shí)測(cè)試了集群配置不同節(jié)點(diǎn)數(shù)量(2~8個(gè),都只有1個(gè)Master,1~7個(gè)Slave)條件下算法的處理性能。圖3表明整個(gè)算法(步驟1~步驟3)隨著節(jié)點(diǎn)數(shù)的增加而運(yùn)行時(shí)間相應(yīng)減少。 加速比是衡量一個(gè)系統(tǒng)擴(kuò)展性優(yōu)劣的主要指標(biāo),其表達(dá)式為: 從圖3中可看出,整個(gè)數(shù)據(jù)聚類算法的時(shí)間隨著節(jié)點(diǎn)的增加而急劇減少。 圖4為聚類算法的可擴(kuò)展性測(cè)試結(jié)果。 從圖4中可看出,多臺(tái)計(jì)算機(jī)能夠很好地縮短所需時(shí)間,這說(shuō)明MapReduce在處理數(shù)據(jù)聚類分析算法上具有較好的加速比,當(dāng)節(jié)點(diǎn)數(shù)更多時(shí),這種性能優(yōu)勢(shì)將更加明顯。在一定的規(guī)模范圍內(nèi),系統(tǒng)具有很好的可擴(kuò)展性。 4 結(jié) 論 本文提出云計(jì)算環(huán)境下基于相似性高維數(shù)據(jù)的聚類算法的并行化實(shí)現(xiàn)。根據(jù)非負(fù)矩陣分解和聚類方法的特點(diǎn)設(shè)計(jì)了Map和Reduce函數(shù),并將該算法在Hadoop平臺(tái)下進(jìn)行性能測(cè)試。實(shí)驗(yàn)結(jié)果表明,基于MapReduce的算法具有良好的擴(kuò)展性和加速比。在數(shù)據(jù)量急劇增長(zhǎng)的大數(shù)據(jù)時(shí)代,在云計(jì)算平臺(tái)上實(shí)現(xiàn)基于MapReduce的數(shù)據(jù)挖掘算法具有重要的意義。 注:本文通訊作者為徐勝超。 參考文獻(xiàn)
[1] ZHENG Y, CAPRA L, WOLFSON O, et al. Urban computing: concepts, methodologies, and applications [J]. ACM transactions on intelligent systems and technology, 2014(1): 1?9.
[2] 李應(yīng)安.基于MapReduce的聚類算法的并行化研究[D].廣州:中山大學(xué),2011.
LI Y A. Research on parallelization of clustering algorithm based on MapReduce [D]. Guangzhou: Sun Yat?sen University, 2011.
[3] 曹澤文,周姚.基于MapReduce的JP算法設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2012,38(24):14?16.
CAO Z W, ZHOU Y. Design and implementation of JP algorithm based on MapReduce [J]. Computer engineering, 2012, 38(24): 14?16.
[4] 楊燕,王全根,黃波.蟻群聚類算法的并行化設(shè)計(jì)與實(shí)現(xiàn)[J].控制工程,2013,20(3):411?414.
YANG Yan, WANG Quangen, HUANG Bo. Parallel design and implementation of ant colony clustering algorithm [J]. Control engineering of China, 2013, 20(3): 411?414.
[5] 楊慧中,董陶,陶洪峰.基于改進(jìn)K?means聚類算法的組合模型建模[J].控制工程,2013,20(2):201?203.
YANG Huizhong, DONG Tao, TAO Hongfeng. Combination model based on improved K?means clustering algorithm [J]. Control engineering of China, 2013, 20(2): 201?203.
[6] 李歡,劉鋒,朱二周.基于改進(jìn)K?means算法的海量數(shù)據(jù)分析技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2016,33(5):52?57.
LI Huan, LIU Feng, ZHU Erzhou. Research of an improved K?means algorithm for analyzing mass data [J]. Microelectronics & computer, 2016, 33(5): 52?57.
[7] LI F, OOI B C, ?ZSU M T, et al. Distributed data management using MapReduce [J]. ACM computing surveys, 2014, 46(3): 31.
[8] 吳詩(shī)極,李川,唐常杰.面向大規(guī)模信息網(wǎng)絡(luò)的高效自適應(yīng)聚類算法[J].計(jì)算機(jī)科學(xué)與探索,2014,8(4):406?416.
WU Shiji, LI Chuan, TANG Changjie. Efficient adaptive clustering algorithm for large scale information network [J]. Journal of frontiers of computer science & technology, 2014, 8(4): 406?416.
[9] 任重魯,李金明.非負(fù)矩陣分解在微陣列數(shù)據(jù)分類和聚類發(fā)現(xiàn)中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2014,36(7):1389?1397.
REN Zhonglu, LI Jinming. Application of non?negative matrix factorization in microarray data classification and clustering discovery [J]. Computer engineering and science, 2014, 36(7): 1389?1397.
[10] 徐森,盧志茂,顧國(guó)昌.結(jié)合K均值和非負(fù)矩陣分解集成文本聚類算法[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2011,41(4):1077?1082.
XU Sen, LU Zhimao, GU Guochang. Integrating K?means and non?negative matrix factorization to ensemble document clustering [J]. Journal of Jilin University (engineering and technology edition), 2011, 41(4): 1077?1082.
[11] 羅明偉,姚宏亮,李俊照,等.一種基于節(jié)點(diǎn)相異度的社團(tuán)層次劃分算法[J].計(jì)算機(jī)工程,2014,40(1):275?279.
LUO Mingwei, YAO Hongliang, LI Junzhao, et al. A hierarchical division algorithm for community based on node dissi?milarity [J]. Computer engineering, 2014, 40(1): 275?279.
[12] Hadoop. Hadoop Open source Web site 2016 [EB/OL]. [2016?10?23]. http://hadoop.apache.org/.endprint