CH系数指的是Calinski-Harabasz指数,这是一种用于评估聚类结果质量的统计量
,特别是在确定最优聚类数目
时非常有用。
CH系数基于簇内离散度
和簇间离散度
的比值,较高的CH值表明聚类结构更加明显,簇间差异大而簇内差异小,因此好的聚类结果应该有较高的CH系数。
CH系数的计算公式如下:
C H ( k ) = B k / ( k − 1 ) W k / ( n − k ) CH(k) = \frac{B_k / (k-1)}{W_k / (n-k)} CH(k)=Wk/(n−k)Bk/(k−1)
这里每一个组成部分都有其特定的意义:
-
B k B_k Bk:
簇间离散度
,即各个簇质心与总质心之间的离散程度的加权和
。它的值越大,表示簇之间的差异越大。 -
W k W_k Wk:
簇内离散度
,即每个簇内所有点到该簇质心的离散程度的加权和
。它的值越小,表示簇内部的凝聚性越好。 -
k k k:聚类的簇数。
-
n n n:样本总数。
具体来说,公式中的每一项解释如下:
-
B k / ( k − 1 ) B_k / (k-1) Bk/(k−1):
簇间离散度的标准化
,这里的 k − 1 k-1 k−1 是自由度,因为 k k k 个簇就有 k − 1 k-1 k−1 个自由度(假设总质心固定的情况下)。 -
W k / ( n − k ) W_k / (n-k) Wk/(n−k):
簇内离散度的标准化
,这里的 n − k n-k n−k 同样是自由度,表示 n n n 个样本减去已经聚类成簇的 k k k 组后剩余的自由度。
具体计算方法如下:
- 对于
B
k
B_k
Bk,先
计算每个簇的质心
,然后计算每个簇质心到总体质心的平方距离的加权和
,权重是每个簇内的样本数量。
B k = ∑ i = 1 k n i ( μ i − μ ) 2 B_k = \sum_{i=1}^{k} n_i (\mu_i - \mu)^2 Bk=i=1∑kni(μi−μ)2
其中,
-
n
i
n_i
ni 是第
i
i
i 簇的
样本数量
-
μ
i
\mu_i
μi 是第
i
i
i 簇的
质心
-
μ
\mu
μ 是所有样本的
总质心。
- 对于
W
k
W_k
Wk,计算
每个簇内所有样本到该簇质心的平方距离的加权和
。
W k = ∑ i = 1 k ∑ x j ∈ C i ( x j − μ i ) 2 W_k = \sum_{i=1}^{k} \sum_{x_j \in C_i} (x_j - \mu_i)^2 Wk=i=1∑kxj∈Ci∑(xj−μi)2
其中,
-
x
j
x_j
xj 是属于第
i
i
i 簇的
某个样本
-
C
i
C_i
Ci 是第
i
i
i 簇的
所有样本集合。
-
μ
i
\mu_i
μi 是第
i
i
i 簇的
质心
最后,将 B k B_k Bk 和 W k W_k Wk 根据上述公式标准化并求比值,即可得到CH系数。
在实际应用中,通常会计算不同
k
k
k 值下的CH系数,选择使CH系数最大
的
k
k
k 值作为最优的聚类数目
。
这是因为最大的CH系数表明簇间差异最大而簇内差异最小,从而说明聚类效果最好。