Python的k均值执行给定的迭代次数(n_init),以根据惯性找到算法的最佳输出。我知道k均值的工作原理,但我的问题是:如何衡量最佳输出?收敛之前需要迭代次数?惯性术语是什么?

最佳答案

The documentation states k-means算法运行时间n_init,然后从获得的结果中返回最小惯量的算法:


  n_initint,默认值:10
  
  k均值算法将以不同的时间运行的次数
  重心种子。最终结果将是n_init的最佳输出
  在惯性方面连续运行。


惯性是在this documentation page中定义的,它的简单含义是计算集群内平方和,即,它将返回一个发现之间更紧凑的集群。

具体说:


  k均值算法将一组N个样本X划分为K
  不相交的簇C,每个簇由的均值μ j描述
  集群中的样本。该方法通常称为簇
  重心请注意,尽管它们生活在同一空间中,但它们通常不是来自X的点。 K-means算法旨在
  选择使惯性最小的质心,或
  平方标准:

∑i = 0至nminμj∈C(|| xj-μi|| 2)
  
  惯量或簇内平方和标准可以是
  被公认为衡量内部聚类的程度的指标。它
  遭受各种弊端:
  
  
  惯性假设簇是凸的且各向同性的,并非总是如此。它对
  细长的簇或不规则形状的歧管。
  惯性不是归一化的度量标准:我们只知道较低的值更好,而零是最佳。但是在高维空间中
  欧几里得距离趋于膨胀(这是
  所谓的“维数诅咒”)。运行维度
  k均值聚类之前的约简算法(例如PCA)可以
  缓解此问题并加快计算速度。

关于python - python scikit如何测量k均值的“最佳输出”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38324640/

10-11 07:46
查看更多