Python的k均值执行给定的迭代次数(n_init),以根据惯性找到算法的最佳输出。我知道k均值的工作原理,但我的问题是:如何衡量最佳输出?收敛之前需要迭代次数?惯性术语是什么?
最佳答案
The documentation states k-means算法运行时间n_init
,然后从获得的结果中返回最小惯量的算法:
n_init
:int
,默认值: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/