Python 的 k 均值执行给定的迭代次数 (n_init),以找到算法在惯性方面的最佳输出。我知道 k 均值的工作原理,但我的问题是:如何测量最佳输出?收敛之前需要的迭代次数?惯性术语是什么意思?
文档指出,k-means 算法运行n_init
时间,然后获得的结果返回惯性最小的算法:
n_init
:int
,默认值:10
k-means算法将使用不同的算法运行的时间数 质心种子。最终结果将是
n_init
的最佳输出 在惯性方面连续运行。
惯性在本文档页面中定义,只是意味着计算集群内的平方和,即这意味着它将返回找到的集群中更紧凑的集群。
具体而言,它指出:
k 均值算法将一组
N
样本X
划分为K
不相交簇C
,每个簇μ
由 群集中的示例。均值通常称为聚类 质心;请注意,它们通常不是来自X
点,尽管它们位于同一空间中。K均值算法旨在 选择使惯性最小化的质心,或簇内和 平方准则:∑i=0 到 n 分钟μj ∈ C(||xj - μi||2)惯性或聚类内的平方和准则可以是 被认为是衡量集群内部一致性的指标。它 有各种缺点:
- 惯性假设簇是凸的和各向同性的,但情况并非总是如此。它对 细长的簇,或具有不规则形状的歧管。
- 惯性不是一个规范化的指标:我们只知道值越低越好,零是最优的。但在非常高维的空间中, 欧几里得距离趋于膨胀(这是 所谓的"维度诅咒")。运行维度 归约算法,例如 k 均值聚类之前的 PCA 可以 缓解此问题并加快计算速度。