如何定义 K-means 聚类中的聚类数?

机器算法验证 聚类 无监督学习
2022-02-16 08:10:14

有什么方法可以确定最佳集群数,还是我应该尝试不同的值并检查错误率以确定最佳值?

1个回答

我使用的方法是使用 CCC (Cubic Clustering Criteria)。当我将集群数量增加 1 时,我希望 CCC 增加到最大值,然后观察 CCC 何时开始减少。那时,我将集群数量设为(本地)最大值。这类似于使用碎石图来选择主成分的数量。


SAS 技术报告 A-108 三次聚类标准 ( pdf )

n= 观察次数
nk=集群中的数字k
p= 变量数
q= 聚类数
X=n×p数据矩阵
M=q×p聚类均值矩阵
Z=集群指标(zik=1如果 obs。i在集群中k, 否则为 0)

假设每个变量的均值为 0:
ZZ=diag(n1,,nq), M=(ZZ)1ZX

SS(总)矩阵=T=XX
SS(簇之间)矩阵 =B=MZZM
SS(簇内)矩阵 =W=TB

R2=1trace(W)trace(T)
(迹线 = 对角线元素的总和)

堆叠列X成一长列。Kronecker 乘积
回归Zp×p单位矩阵
计算R2对于这个回归 - 相同R2

CCC 的想法是比较R2你得到一组给定的集群R2您可以通过将一组均匀分布的点聚集在p维空间。