Spark MLlib聚类clustering:KMeans K均值 ---原理及实战
来源:互联网 发布:中宏产业数据库 编辑:程序博客网 时间:2024/05/17 23:07
原理
KMeans,即K均值。K:K个Cluster,Means:均值,每个Cluster以均值为中心点。
KMeans train方法的重要参数:
data: RDD[Vector] 输入数据类型
k: Int cluster数目
maxIterations: Int 最大迭代次数
runs: Int 并行度,会返回最佳model
initializationMode: String 初始中心点选择方式,”random” 或 “k-means||” (default)
seed: Long 随机种子,在初始化中心点时会用到
通常需要设置的是:k、maxIterations、runs
MLlib中KMeans原理:
A、选取k个点作为初始聚类中心点
B、计算每一个点到每一个中心点的距离,并把这个点归到最近中心点所在的Cluster中去
C、计算每个Cluster新中心点。
center=mean=sum/count D、计算准则函数:每个Cluster新中心点与上一次迭代对应中心点之间的距离是否都
≤ 阈值。如果都满足阈值则退出迭代。否则更新中心点,重复B、C、D。
E、最终退出条件:每一个Cluster中心点都满足阈值或达到最大迭代次数。runs是并行度,可简单理解为以上步骤同时运行了runs次,得
到runs组,每组k个中心点,取出最好的那一组,得到最终KMeansModel,该model中保存了k个最优中心点。
实战
import org.apache.spark.mllib.clustering.{KMeansModel, KMeans}import org.apache.spark.mllib.linalg.{Vector, Vectors}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkContext, SparkConf}object KmeansExample { def main(args: Array[String]) { val conf = new SparkConf().setAppName("KmeansExample").setMaster("local[1]") val sc = new SparkContext(conf) val data = sc.textFile("data/kmeans.txt") val train: RDD[Vector] = data.map(line=>Vectors.dense(line.split(",").map(_.toDouble))) // 训练kMeans模型 // 参数解释: // data: RDD[Vector] data:数据类型 // k: Int k:k个cluster // maxIterations: Int maxIterations:最大迭代次数 // runs: Int runs:并行度,同时运行runs个Kmeans,返回最好的那个 // k=2 maxIterations=4 runs=3 val kMeansModel: KMeansModel = KMeans.train(train,2,4,3) // 得到最佳中心点 kMeansModel.clusterCenters.foreach(println) //[0.1,0.1,0.1] //[9.1,9.1,9.1] }}
0 0
- Spark MLlib聚类clustering:KMeans K均值 ---原理及实战
- K均值(K-means)算法原理及Spark MLlib调用实例(Scala/Java/python)
- 二分K均值算法原理及Spark MLlib调用实例(Scala/Java/Python)
- Spark MLlib特征处理:Binarizer 二值化---原理及实战
- Spark MLlib特征处理:StringToIndex 字符串索引---原理及实战
- Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战
- Spark MLlib特征处理:Normalizer 正则化---原理及实战
- Spark MLlib之KMeans
- 【Spark Mllib】K-均值聚类——电影类型
- K均值(KMeans)
- spark笔记-MLlib之kmeans
- Spark MLLib KMeans OOM 问题
- K-Means及Spark实现Kmeans算法
- K均值(kmeans)分类
- Spark MLlib特征处理:TF-IDF 词频-逆文频---原理及实战
- Spark MLlib特征处理:MinMax最大最小值区间缩放---原理及实战
- Spark MLlib特征处理:PCA 主成分分析 ---原理及实战
- K-means clustering (K-均值聚类)
- Android 修改用户图像笔记
- 重载_,“+, -, --, ++”运算符
- 模式识别四--最大似然估计与贝叶斯估计方法
- 关于3D-HEVC中的SDC编码方式
- Spring mvc4 + ActiveMQ 整合
- Spark MLlib聚类clustering:KMeans K均值 ---原理及实战
- 伯乐在线
- 信息隐藏课程之索引图像的隐写
- 确定字符互异
- PAT_乙级 1011 A+B和C
- LeetCode-Balanced Binary Tree
- Spring基础:快速入门spring(4):setter注入
- 模式识别五--PCA主分量分析与Fisher线性判别
- C语言题目