获取集群的第一个元素和集群 ids kmeans spark

Posted

技术标签:

【中文标题】获取集群的第一个元素和集群 ids kmeans spark【英文标题】:get first elements of clusters and clusters ids kmeans spark 【发布时间】:2017-07-28 22:13:05 【问题描述】:

我用我的数据集训练了一个 k 均值模型,现在我想从每个集群中获取一些元素以及集群 ID

val clusters = KMeans.train(data, numClusters, numIterations)

val vectorsAndClusterIdx = data.map point =>
  val prediction = clusters.predict(point)
  (point.toString, prediction)
 

但是一旦我有了它,我不知道如何用它们的集群 ID 打印这些元素

【问题讨论】:

【参考方案1】:

如果我理解你的话,你想用分配的集群 ID 打印每个点。

你可以试试这样的:

    vectorsAndClusterIdx.collect().foreach(println(_))

或者可能会更好:

    println(dataClustered.collect().mkString("\n"))

【讨论】:

谢谢,您的第一个解决方案效果很好 :) 如果可能的话,我希望从每个集群中获取 10 个元素 @laure-d :如果您对上述答案没问题,请注意投票/接受答案 我是,但不完全是,我的意思是,如果可能的话,我希望从每个集群中只获取 10 个元素,而不是所有元素 我还没有测试过,但可以试试:vectorsAndClusterIdx.keyBy(_._2).groupByKey().flatMapValues(x => x.take(10)).values.collect().foreach(println(_))

以上是关于获取集群的第一个元素和集群 ids kmeans spark的主要内容,如果未能解决你的问题,请参考以下文章

当集群中的元素为零时如何处理kmeans

PySpark ML:获取 KMeans 集群统计信息

如何从集群实现 sklearn -AgglomerativeClustering?

kmeans集群中节点和质心之间的距离?

如何在opencv中访问特定的kmeans集群

如何使用 Matplotlib 从多特征 kmeans 模型中绘制集群和中心?