Sparkmllib scala KMEANS demo
生活随笔
收集整理的這篇文章主要介紹了
Sparkmllib scala KMEANS demo
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
定義:?
聚類是一個將數(shù)據(jù)集中在某些方面相似的數(shù)據(jù)成員進(jìn)行分類組織的過程,聚類就是一種發(fā)現(xiàn)這種內(nèi)在結(jié)構(gòu)的技術(shù),聚類技術(shù)經(jīng)常被稱為無監(jiān)督學(xué)習(xí)。
k均值聚類是最著名的劃分聚類算法,由于簡潔和效率使得他成為所有聚類算法中最廣泛使用的。給定一個數(shù)據(jù)點集合和需要的聚類數(shù)目k,k由用戶指定,k均值算法根據(jù)某個距離函數(shù)反復(fù)把數(shù)據(jù)分入k個聚類中。
?數(shù)據(jù)源準(zhǔn)備:
0.0 0.0 0.0 0.1 0.1 0.1 0.2 0.2 0.2 9.0 9.0 9.0 9.1 9.1 9.1 9.2 9.2 9.2 0.2 0.2 0.2 0.3 0.4 0.2 0.5 0.2 0.5 0.6 0.6 0.6 0.7 0.7 0.7 0.2 0.2 0.2 0.2 0.2 0.2Demo:
object KMeansdemo {def main(args: Array[String]): Unit = {//創(chuàng)建SparkContextval conf = new SparkConf().setMaster("local[4]").setAppName("KMeans")val sc = new SparkContext(conf)//加載數(shù)據(jù)val path = "kmeans_data.txt"val data = sc.textFile(path)val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()//通過KMeans將數(shù)據(jù)分成兩個陣營val numClusters = 2val numIterations = 20val clusters = KMeans.train(parsedData, numClusters, numIterations)//輸出當(dāng)前的聚類中心clusters.clusterCenters.foreach(println _)val index = clusters.predict(Vectors.dense(Array(8.9,7.2,9.0)))println(s"Vector[8.9, 7.2, 9.0] 屬于聚類索引為:${index} 中心坐標(biāo)為:${clusters.clusterCenters(index)} 的簇")//計算誤差平方和val WSSSE = clusters.computeCost(parsedData)println("誤差平方和 = " + WSSSE)sc.stop()} }?
總結(jié)
以上是生活随笔為你收集整理的Sparkmllib scala KMEANS demo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sparkmllib scala svm
- 下一篇: sparkmllib scala Nai