【问题标题】:How to avoid Kmean local optima when using sklearn Kmeans使用sklearn Kmeans时如何避免Kmean局部最优
【发布时间】:2019-05-25 03:38:11
【问题描述】:

我想在生产部署中使用 scikit kmean,并希望使用 kmean.init = k-means++ 的默认设置。我的问题是,在初始化集群质心时,kmeans 陷入局部最优的可能性有多大?

Notes 说“‘k-means++’:以智能的方式为 k-means 聚类选择初始聚类中心以加速收敛。有关详细信息,请参阅 k_init 中的注释部分”。

是否有关于获得局部最优的概率的数据? 如果是这样,我应该迭代以获得最小成本函数吗?

【问题讨论】:

    标签: python-3.x scikit-learn k-means


    【解决方案1】:

    陷入局部最优的概率主要取决于数据的性质。如果将其明确分组,则初始集群可能不会对最终集群结果产生太大影响。 May be of use for you.

    尽管有上述几点,对于高维数据集,最好用不同的初始集群尝试 10 次或更多次迭代,并选择性能最佳的一个(性能指标之一可以是silhouette-coefficient

    【讨论】:

    • 我确实尝试迭代 100 次以获得最小失真成本函数并选择最佳 kmean 簇质心,但似乎具有 init=k-mean++ 的 kmeans 得到了很好的优化,因为它返回了相同的值成本函数。
    • 正如我之前提到的,只有当数据集倾斜时才会出现变化。如果您想了解更多关于 k-means++ 的信息,请查看论文 ilpubs.stanford.edu:8090/778/1/2006-13.pdf 的第 2.2 节
    猜你喜欢
    • 2017-08-04
    • 2016-09-09
    • 1970-01-01
    • 2012-05-04
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2020-03-08
    相关资源
    最近更新 更多