如何设置 Spark Kmeans 初始中心
how to set Spark Kmeans initial centers
我正在为 运行 Kmeans 使用 Spark ML。我有一堆数据和三个现有的中心,例如三个中心是:[1.0,1.0,1.0],[5.0,5.0,5.0],[9.0,9.0,9.0].
那么如何表示 Kmeans 中心是以上三个向量。
我看到 Kmean 对象有 seed 参数,但 seed 参数是一个 long 类型而不是数组。那么我怎样才能告诉 Spark Kmeans 只使用现有的中心进行聚类。
或者说,我不明白 Spark Kmeans 中的种子是什么意思,我想种子应该是一个向量数组,代表 运行 聚类之前的指定中心。
事实上,seed
并不代表你所想的,即它不用于'seeding'(初始化)聚类中心,而只是用于设置随机种子 - 你可以在Scala and Python API 的文档。
据我所知,目前 (Spark 2.1) 无法在 Spark ML 中为 k-means 提供初始聚类中心(根据文档,请参阅 for Spark MLlib). The initMode
参数:
can be either "random" to choose random points as initial cluster centers, or "k-means||" to use a parallel variant of k-means++')
我正在为 运行 Kmeans 使用 Spark ML。我有一堆数据和三个现有的中心,例如三个中心是:[1.0,1.0,1.0],[5.0,5.0,5.0],[9.0,9.0,9.0].
那么如何表示 Kmeans 中心是以上三个向量。
我看到 Kmean 对象有 seed 参数,但 seed 参数是一个 long 类型而不是数组。那么我怎样才能告诉 Spark Kmeans 只使用现有的中心进行聚类。
或者说,我不明白 Spark Kmeans 中的种子是什么意思,我想种子应该是一个向量数组,代表 运行 聚类之前的指定中心。
事实上,seed
并不代表你所想的,即它不用于'seeding'(初始化)聚类中心,而只是用于设置随机种子 - 你可以在Scala and Python API 的文档。
据我所知,目前 (Spark 2.1) 无法在 Spark ML 中为 k-means 提供初始聚类中心(根据文档,请参阅 initMode
参数:
can be either "random" to choose random points as initial cluster centers, or "k-means||" to use a parallel variant of k-means++')