一、SSE
1.1、原理
每个簇的点到各自质心的距离之和, 用于衡量簇的松散度。
S S E = ∑ i = 1 k ∑ p ∈ C i ∣ ∣ p − m i ∣ ∣ 2 SSE = \sum_{i=1}^k\sum_{p\in C_i}||p-m_i||^2 SSE=i=1∑kp∈Ci∑∣∣p−mi∣∣2
二、肘部法(确定K值)
步骤:
- 计算k从1到n的的SSE
- SSE会逐渐减小,直到k=n时SSE=0,每个点都是质心
- 在SSE减小过程,会出现拐点,这个拐点就是肘,下降率突然变缓时,就是最佳K值
三、轮廓系数法(Silhouette Coefficient)
结合了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的效果。
S = b − a m a x ( a , b ) S ∈ [ − 1 , 1 ] S = \frac{b-a}{max(a,b)} \qquad S\in[-1, 1] S=max(a,b)b−aS∈[−1,1]
a是
X
i
X_i
Xi与同簇的其他样本的平均距离,称为凝聚度;
b是
X
i
X_i
Xi与最近簇(其他簇)中所有样本的平均距离,称为分离度
最近簇定义:
C
j
=
arg
min
C
k
1
n
∑
p
∈
C
k
∣
p
−
X
i
∣
2
C_j = \arg \min_{C_k} \frac{1}{n}\sum_{p \in C_k}|p-X_i|^2
Cj=argCkminn1p∈Ck∑∣p−Xi∣2
p是某个簇
C
k
C_k
Ck中的样本。即,用
X
i
X_i
Xi到某个簇所有样本平均距离作为衡量该点到该簇的距离后,选择离Xi最近的一
个簇作为最近簇。
求出所有样本的轮廓系数后再求平均值就得到了平均轮廓系数。
平均轮廓系数的取值范围为[-1,1],系数越大,聚类效果越好。
簇内样本的距离越近,簇间样本距离越远
四、CH系数(Calinski-Harabasz Index)
Calinski-Harabasz:类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分
数s会高,分数s高则聚类效果越好。
C H ( k ) = t r ( B k ) t r ( W k ) m − k k − 1 CH(k) = \frac{tr(B_k)}{tr(W_k)}\frac{m-k}{k-1} CH(k)=tr(Wk)tr(Bk)k−1m−k
用尽量少的类别聚类尽量多的样本,同时获得较好的聚类效果。
m为训练集样本数,k为类别数,tr为矩阵的迹。
Bk为类别之间的协方差矩阵,Wk为类别内部数据的协方差矩阵。
