Python,Scikit learn,K-means:参数n_init实际上做什么?

Python,Scikit learn,K-means:参数n_init实际上做什么?,python,machine-learning,scikit-learn,cluster-analysis,k-means,Python,Machine Learning,Scikit Learn,Cluster Analysis,K Means,我是Python的初学者。现在,我试图理解参数n_init来自什么 从文件中: n_init:int,默认值:10 使用不同质心种子运行k-means算法的时间。就惯性而言,最终结果将是n_init连续运行的最佳输出 起初,我认为这意味着代码运行的时间,直到我找到这个,我意识到这就是max_iter所做的 参数n_init到底做什么?我真的不明白。在K-中,质心的初始位置在它的收敛中起着非常重要的作用。有时,初始质心的放置方式是,在K-均值聚类的连续迭代过程中,聚类持续发生剧烈变化,甚至在可能出

我是Python的初学者。现在,我试图理解参数n_init来自什么

从文件中:

n_init:int,默认值:10

使用不同质心种子运行k-means算法的时间。就惯性而言,最终结果将是n_init连续运行的最佳输出

起初,我认为这意味着代码运行的时间,直到我找到这个,我意识到这就是max_iter所做的


参数n_init到底做什么?我真的不明白。

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

如果您感兴趣,还可以查看专门为解决此问题而设计的


你也可以看看初始质心的问题。

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

如果您感兴趣,还可以查看专门为解决此问题而设计的


您还可以了解初始质心的重要性。

由于起点是随机的,
n_init
说明了算法应该使用多少不同的随机点集。然后根据惯性(运行结束时algo移动得多么少-小步-->接近最佳解决方案)给出最佳运行。它将随机多次初始化群集的质心。根据质心的初始值,形成的簇可能不同。由于起始点是随机的,
n_init
说明了算法应使用多少组不同的随机点。然后根据惯性(运行结束时algo移动得多么少-小步-->接近最佳解决方案)给出最佳运行。它将随机多次初始化群集的质心。根据质心的初始值,形成的簇可能不同。如果有人使用
n_init=10
random_state=1234
,则答案没有意义。如何随机初始化具有固定
随机_状态的10倍质心?@serafeim它基本上意味着统一选择10*(质心数量),随机状态设置为1234。这有助于清除您的查询吗?如果有人使用
n_init=10
random_state=1234
,则答案没有意义。如何随机初始化具有固定
随机_状态的10倍质心?@serafeim它基本上意味着统一选择10*(质心数量),随机状态设置为1234。这有助于清除您的查询吗?