gpt4 book ai didi

Python、Scikit-learn、K-means : What does the parameter n_init actually do?

转载 作者:行者123 更新时间:2023-11-30 09:28:59 25 4
gpt4 key购买 nike

我是 Python 初学者。现在,我试图了解 sklearn.cluster.KMeans 中的参数 n_init 是什么。

来自文档:

n_init : int, default: 10

Number of time the k-means algorithm will be run with different centroid seeds. The final results will be the best output of n_init consecutive runs in terms of inertia.

起初,我认为这意味着代码运行的次数,直到我找到这个 helpful question ,我意识到这就是 max_iter 所做的。

参数n_init到底有什么作用?实在是看不懂。

最佳答案

在K-means中,质心的初始放置对其收敛起着非常重要的作用。有时,初始质心的放置方式使得在 K 均值的连续迭代期间,簇不断发生剧烈变化,甚至在收敛条件可能发生之前,就达到了 max_iter,我们留下了不正确的簇。因此,这样获得的聚类可能不正确。为了解决这个问题,引入了这个参数。 n_iter 的值基本上决定了算法应该使用多少组不同的随机选择质心。对于每个不同的点集,对簇移动的距离进行比较,即,如果簇移动的距离短,那么我们很可能最接近地面实况/最佳解决方案。返回提供最佳性能的点及其各自的运行以及所有集群标签。

如果您有兴趣,也可以看看k-means++ algorithm专门为解决这个问题而设计。

您还可以查看this link for more details关于初始质心很重要。

关于Python、Scikit-learn、K-means : What does the parameter n_init actually do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46359490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com