如何设置Spark Kmeans初始中心

时间:2017-04-18 22:07:49

标签: apache-spark machine-learning cluster-analysis k-means apache-spark-mllib

我使用Spark ML来运行Kmeans。我有大量数据和三个现有中心,例如三个中心是:[1.0,1.0,1.0],[5.0,5.0,5.0],[9.0,9.0,9.0]. 那么我怎么能指出Kmeans中心是上面三个向量。 我看到Kmean对象有种子参数,但种子参数是long类型而不是数组。那么我怎么能告诉Spark Kmeans只使用现有的集群中心。

或者说,我不明白种子在Spark Kmeans中意味着什么,我想种子应该是一个向量数组,它代表了运行聚类之前的指定中心。

1 个答案:

答案 0 :(得分:2)

实际上,seed并不意味着您的想法,即它不用于“播种”(初始化)群集中心,而只是用于设置随机种子 - 您可以在文档中确认ScalaPython API。

据我所知,目前(Spark 2.1)无法为Spark ML中的k-means提供初始集群中心(请参阅this answer以获取Spark MLlib)。 initMode参数,根据文档:

  

可以“随机”选择随机点作为初始聚类中心,或“k-means ||”使用k-means ++')的并行变体