【问题标题】:how to set Spark Kmeans initial centers如何设置 Spark Kmeans 初始中心
【发布时间】:2017-09-14 22:22:44
【问题描述】:

我正在使用 Spark ML 运行 Kmeans。我有一堆数据和三个现有中心,例如三个中心是:[1.0,1.0,1.0],[5.0,5.0,5.0],[9.0,9.0,9.0]. 那么我怎样才能表明 Kmeans 中心是上述三个向量。 我看到 Kmean 对象有种子参数,但种子参数是长类型而不是数组。那么如何告诉 Spark Kmeans 只使用现有的中心进行聚类。

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

【问题讨论】:

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


    【解决方案1】:

    确实,seed 并不代表您的想法,即它不用于“播种”(初始化)集群中心,而只是用于设置随机种子 - 您可以在 @987654321 的文档中确认这一点@ 和 Python API。

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

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

    【讨论】:

    • 谢谢,请问一般种子号怎么设置?较小的值还是较大的值?
    • @Jack 没关系;它不会影响性能,仅当您希望结果完全可重现时才需要明确设置它 - 看看这个 SO 答案(或只是谷歌'随机种子')stackoverflow.com/questions/33973817/…
    猜你喜欢
    • 2015-09-17
    • 2012-04-24
    • 2016-11-16
    • 2013-07-30
    • 2017-02-09
    • 2017-08-05
    • 2021-08-31
    • 2013-04-29
    • 1970-01-01
    相关资源
    最近更新 更多