Sparkmllib scala KMEANS demo
生活随笔
收集整理的這篇文章主要介紹了
Sparkmllib scala KMEANS demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義:?
聚類是一個將數據集中在某些方面相似的數據成員進行分類組織的過程,聚類就是一種發現這種內在結構的技術,聚類技術經常被稱為無監督學習。
k均值聚類是最著名的劃分聚類算法,由于簡潔和效率使得他成為所有聚類算法中最廣泛使用的。給定一個數據點集合和需要的聚類數目k,k由用戶指定,k均值算法根據某個距離函數反復把數據分入k個聚類中。
?數據源準備:
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 = {//創建SparkContextval conf = new SparkConf().setMaster("local[4]").setAppName("KMeans")val sc = new SparkContext(conf)//加載數據val path = "kmeans_data.txt"val data = sc.textFile(path)val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()//通過KMeans將數據分成兩個陣營val numClusters = 2val numIterations = 20val clusters = KMeans.train(parsedData, numClusters, numIterations)//輸出當前的聚類中心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} 中心坐標為:${clusters.clusterCenters(index)} 的簇")//計算誤差平方和val WSSSE = clusters.computeCost(parsedData)println("誤差平方和 = " + WSSSE)sc.stop()} }?
總結
以上是生活随笔為你收集整理的Sparkmllib scala KMEANS demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sparkmllib scala svm
- 下一篇: sparkmllib scala Nai