MLlib中K-means流程
来源:互联网 发布:端口号占用查询 编辑:程序博客网 时间:2024/05/16 23:43
MLlib的聚类算法有K均值算法,LDA算法,二分K均值算法,高斯混合模型等等。以K均值为例。
MLlib中K-means流程如下:
第一步,选择K个点作为初始聚类中心。
第二步,计算其余所有点到聚类中心的距离,并把每个点划分到离它最近的聚类中心所在的聚类中去。在这里,衡量距离一般有多个函数可以选择,最常用的是欧几里得距离(EuclideanDistance),也叫欧式距离。公式如下:
其中C代表中心点,X代表任意一个非中心点。
第三步,重新计算每个聚类中所有点的平均值,并将其作为新的聚类中心点。
最后,重复(二),(三)步的过程,直至聚类中心不再发生改变,或者算法达到预定的迭代次数,又或聚类中心的改变小于预先设定的阀值。
算法的实现在初始聚类点的选择上。MLlib借鉴了一个叫K-means||的类K-means++实现。K-means++算法在初始点选择上遵循一个基本原则:初始聚类中心点相互之间的距离应该尽可能的远。基本步骤如下:
第一步,从数据集X中随机选择一个点作为第一个初始点。
第二步,计算数据集中所有点与最新选择的中心点的距离D(x)。
第三步,选择下一个中心点,使得最大。
第四部,重复(二),(三)步过程,直到K个初始点选择完成。
其实现代码如下:
importorg.apache.spark.ml.clustering.KMeans
//Loadsdata.
valdataset=spark.read.format(“libsvm”).load(“data/mllib/sample_kmeans_data.txt”)
//Trainsak-meansmodel.
valkmeans=newKMeans().setK(2).setSeed(1L)
valmodel=kmeans.fit(dataset)//usefit()methodtoproduceatransformer
//EvaluateclusteringbycomputingWithinSetSumofSquaredErrors.
valWSSSE=model.computeCost(dataset)
println(s”WithinSetSumofSquaredErrors=$WSSSE”)
//Showstheresult.
println(“ClusterCenters:”)
model.clusterCenters.foreach(println)
- MLlib中K-means流程
- spark mllib k-means算法实现
- Spark MLlib(一)K-Means
- 使用 Spark MLlib 做 K-means 聚类分析
- 使用 Spark MLlib 做 K-means 聚类分析
- 使用 Spark MLlib 做 K-means 聚类分析
- 使用 Spark MLlib 做 K-means 聚类分析
- 使用 Spark MLlib 做 K-means 聚类分析
- Spark MLlib之K-Means聚类算法
- k-means算法原理以及Scala调用MLlib实现
- spark平台 mllib K-Means聚类算法 实现
- K—means算法实现流程
- K均值(K-means)算法原理及Spark MLlib调用实例(Scala/Java/python)
- Spark 实战,第 4 部分: 使用 Spark MLlib 做 K-means 聚类分析
- K-Means
- k-means
- K-means
- k means
- jenkins+gitlab 安装和配置
- Java中Map类的使用
- PHP遍历删除目录和目录下所有文件
- iOS 21种设计模式之抽象工厂(Abstract Factory)
- android bind aidl 实例理解
- MLlib中K-means流程
- 纯CSS实现的好看的边框
- linux系统在文件夹下查找含有指定字符串的文件的方法
- 1104. Sum of Number Segments
- 1105. Spiral Matrix
- 训练自己的Adaboost级联分类器并识别物体(二)
- tomcat中关于-Xms -Xmx -XX:PermSize -XX:MaxPermSize的理解和区别
- wireshark数据包分析
- php trait 学习笔记