陳虹君
摘要:大數(shù)據(jù)的挖掘是當(dāng)今的研究熱點(diǎn),也有著巨大的商業(yè)價值。新型框架Spark部署在Hadoop平臺上,它的機(jī)器學(xué)習(xí)算法幾乎可以完全替代傳統(tǒng)的Mahout MapReduce的編程模式,但由于Spark的內(nèi)存模型特點(diǎn),執(zhí)行速度快。該文研究了Spark中的機(jī)器學(xué)習(xí)中的聚類算法KMeans,先分析了算法思想,再通過實(shí)驗(yàn)分析其應(yīng)用的方法,然后通過實(shí)驗(yàn)結(jié)果分析其應(yīng)用場景和不足。
關(guān)鍵詞:大數(shù)據(jù);Hadoop;Spark;機(jī)器學(xué)習(xí);聚類;KMeans
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)04-0056-02
Abstract: Mining big data is current research hotspot, also have a huge commercial value.A new framework of Spark is deployed on the Hadoop platform, in which machine learning algorithms can be almost completely replace the traditional Mahout MapReduce programming mode. But the characteristics of Spark memory model, efficiency of execution is high. This paper studies the KMeans clustering algorithm in Spark machine learning。The first analyze the idea of the algorithm, and then through the experimental analyze method and its application, and then through results of experimental analyze its application scenarios and lacks.
Key words: big data; Hadoop; Spark; machine learnin; clustering; KMeans
大數(shù)據(jù)的挖掘是當(dāng)今的研究熱點(diǎn),也具有很大的商業(yè)價值。傳統(tǒng)方式在大數(shù)據(jù)Hadoop平臺上利用Mahout以MapReduce的編程方式做數(shù)據(jù)挖掘,但是有一定的局限,比如效率較低。Spark框架稱為快數(shù)據(jù),是基于內(nèi)存的編程模型,它可以把中間的迭代過程不放在磁盤中,直接數(shù)據(jù)不落地在內(nèi)存中執(zhí)行,極大地提高了它的執(zhí)行速度。Spark是大數(shù)據(jù)挖掘的新型利器。
1 Spark框架上的機(jī)器學(xué)習(xí)算法
在Spark框架中機(jī)器學(xué)習(xí)幾乎可以完全替代Hadoop平臺上傳統(tǒng)的Mahout, 并且具有更高的效率。Spark的機(jī)器學(xué)習(xí)有分類和回歸:線性模型、支持向量機(jī)、邏輯回歸、線性回歸;決策樹,樸素貝葉斯;協(xié)同過濾:交替最小二乘法;聚類:KMeans聚類;降維:奇異值分解,主成分分析;特征提取和變換等。其中KMeans聚類算法是常用的算法,該文將對該算法做詳細(xì)研究。
2 Spark中KMeans聚類算法分析
聚類算法KMeans :接受輸入量 K ;然后將N個數(shù)據(jù)對象劃分為 K個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。聚類相似度是利用各聚類中對象的均值所獲得一個“中心對象”,也稱為引力中心,來進(jìn)行計算的。若有N 個數(shù)據(jù)點(diǎn)需要分為 K 個 cluster ,k-means 要做的就是最小化。
不過就算法由1變成100次結(jié)果還是不變的。這也表明KMeans算法的其中一個缺點(diǎn):需要根據(jù)初始聚類中心來確定一個初始劃分,一旦初始值選擇的不好,可能無法得到有效的聚類結(jié)果
5 總結(jié)
聚類KMeans算法是聚類分析中的常用算法,它是數(shù)據(jù)劃分或者分組處理的重要方式,目前在電子商務(wù)、生物科學(xué)、圖像處理、Web文檔分類等領(lǐng)域都得到了有效的應(yīng)用。比如利用聚類KMeans將客戶細(xì)分為是哪種用戶類型,以便于推薦合適的產(chǎn)品。目前,對于KMeans還有很到要優(yōu)化的地方,比如如何自主式聚類,盡量避免由于初始值選擇,而影響到聚類的效果。
參考文獻(xiàn):
[1] 編程指南[EB/OL].http://spark.apache.org/docs/latest/programming-guide.html,Spark,2013.
[2] 機(jī)器學(xué)習(xí)庫[EB/OL].http://blog.csdn.net/johnny_lee/article/details/25656343,2013.
[3] 最近的spark文檔[EB/OL].http://spark.apache.org/docs/latest/,2014.
[4] 聚類算法的研究與應(yīng)用[EB/OL].http://www.docin.com/p-599574449.html,2014.