python的scikit如何测量k-means的"最佳输出"



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

文档指出,k-means 算法运行n_init时间,然后获得的结果返回惯性最小的算法:

n_initint,默认值:10

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

惯性在本文档页面中定义,只是意味着计算集群内的平方和,即这意味着它将返回找到的集群中更紧凑的集群。

具体而言,它指出:

k 均值算法将一组N样本X划分为K 不相交簇C,每个簇μ 群集中的示例。均值通常称为聚类 质心;请注意,它们通常不是来自X点,尽管它们位于同一空间中。K均值算法旨在 选择使惯性最小化的质心,或簇内和 平方准则:

i=0 到 n 分钟μj ∈ C(||xj - μi||2

惯性或聚类内的平方和准则可以是 被认为是衡量集群内部一致性的指标。它 有各种缺点:

  • 惯性假设簇是凸的和各向同性的,但情况并非总是如此。它对 细长的簇,或具有不规则形状的歧管。
  • 惯性不是一个规范化的指标:我们只知道值越低越好,零是最优的。但在非常高维的空间中, 欧几里得距离趋于膨胀(这是 所谓的"维度诅咒")。运行维度 归约算法,例如 k 均值聚类之前的 PCA 可以 缓解此问题并加快计算速度。

相关内容

  • 没有找到相关文章

最新更新