如何设置Spark Kmeans初始中心

Jac*_*ack 3 cluster-analysis machine-learning k-means apache-spark 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 中种子的含义,我认为种子应该是一个向量数组,在运行聚类之前代表指定的中心。

des*_*aut 5

事实上,这并不意味着您的想法,即它不用于“播种”(初始化)聚类中心,而只是用于设置随机种子 - 您可以在ScalaPythonseed API的文档中确认这一点。

据我所知,目前(Spark 2.1)无法为 Spark ML 中的 k-means 提供初始聚类中心(请参阅Spark MLlib 的此答案)。initMode根据文档,参数:

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