聚类分析的度量(评价准则)
聚类分析是一种典型的无监督学习, 用于对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中, 把不相似的样本分为不同类簇,从而揭示样本之间内在的性质以及相互之间的联系规律。
可以采用邓恩指标(Dunn Index)以及轮廓系数(Silhouette Coefficient)对聚类算法的效果进行评估。当数据集的外部信息可用时,也可以通过比较聚类划分与外部准则的匹配度,评价不同聚类算法的性能。
更多算法请见这里:2024 数学建模国赛 C 题攻略(无废话版)
良好聚类算法的特征
- 良好的可伸缩性
- 处理不同类型数据的能力
- 处理噪声数据的能力
- 对样本顺序的不敏感性
- 约束条件下的表现
- 易解释性和易用性
聚类分析的度量
内部有效性指标
内部有效指标主要基于数据集的集合结构信息从紧致性、分离性、连通性和重叠度等方面对聚类划分进行评价。
邓恩指标(Dunn Index)
D
I
=
min
1
≤
k
<
k
′
≤
m
d
m
i
n
(
C
k
,
C
k
′
)
max
1
≤
l
′
≤
m
d
i
a
m
(
C
l
′
)
d
min
(
C
k
,
C
k
′
)
=
min
x
∈
C
k
,
x
′
∈
C
l
dist
(
x
,
x
′
)
d
i
a
m
(
C
l
′
)
=
max
1
≤
i
<
j
≤
∣
C
l
′
∣
dist
(
x
i
,
x
j
)
DI=\frac{\min\limits_{1\leq k<k'\leq m}d_{min}(C_k,C_{k'})}{\max\limits_{1\leq l'\leq m}diam(C_{l'})} \\\\ d_{\min}(C_k,C_{k'})=\min_{x\in C_k,x'\in C_l}\operatorname{dist}(x,x') \\\\ diam(C_{l'})=\max_{1\leq i<j\leq |C_{l'}|}\operatorname{dist}(x_i,x_j)
DI=1≤l′≤mmaxdiam(Cl′)1≤k<k′≤mmindmin(Ck,Ck′)dmin(Ck,Ck′)=x∈Ck,x′∈Clmindist(x,x′)diam(Cl′)=1≤i<j≤∣Cl′∣maxdist(xi,xj)
Dunn 指标计算任意两个簇元素的最短距离(类间)除以任意族中的最大距离(类内)。
D
I
DI
DI越大,意味着类间距离越大,同时类内距离越小。
d min ( C k , C k ′ ) d_{\min}(C_k,C_{k'}) dmin(Ck,Ck′)表示任取两个类簇,让这两个类簇各派一个样本点计算距离,并取最小的距离作为这两个类簇的远离程度。
d i a m ( C l ′ ) diam(C_{l'}) diam(Cl′)表示任取一个类簇,让这个类簇内任意两点计算距离,并取最大的距离作为覆盖类簇所有点的圆直径(diameter)。注意这个圆直径不是一个可覆盖类簇内所有点的最小圆直径,因为最小覆盖圆问题的求解复杂度太高了。
[!NOTE]
由于使用欧氏距离,邓恩指数对离散点的聚类测评很高、对环状分布测评效果差
轮廓系数(Silhouette Coefficient)
S
C
(
i
)
=
b
(
i
)
−
a
(
i
)
max
(
a
(
i
)
,
b
(
i
)
)
a
(
i
)
=
1
n
−
1
∑
j
≠
i
n
dist
(
i
,
j
)
b
(
i
)
=
min
(
b
1
(
i
)
,
b
2
(
i
)
.
.
.
b
m
(
i
)
)
SC(i)=\frac{b(i)-a(i)}{\max (a(i),b(i))} \\\\ a(i)=\frac{1}{n-1}\sum_{j\neq i}^n\operatorname{dist}(i,j) \\\\ b(i)=\min(b_1(i),b_2(i)...b_m(i))
SC(i)=max(a(i),b(i))b(i)−a(i)a(i)=n−11j=i∑ndist(i,j)b(i)=min(b1(i),b2(i)...bm(i))
a
(
i
)
a(i)
a(i)定义为
i
i
i向量到同一簇内其他点不相似程度的平均值,其中
j
j
j代表与样本
i
i
i在同一个类内的其他样本点,
a
(
i
)
a(i)
a(i)越小说明该类越紧密。
b ( i ) b(i) b(i)定义为 i i i向量到其他簇的平均不相似程度的最小值
[!NOTE]
对于簇结构为凸的数据轮廓系数较高,对于簇结构非凸的轮廓系数较低。因此,轮廓系数不能在不同的算法之间比较优劣,如统一数据下,可能KMeans的结果就比DBSCAN要好。
外部有效性指标
外部有效指标是指当数据集的外部信息可用时,通过比较聚类划分与外部准则的匹配度,可以评价不同聚类算法的性能。
F-Measure
F
−
M
e
a
s
u
r
e
=
2
×
p
r
e
c
i
s
i
o
n
×
r
e
c
a
l
l
p
r
e
c
i
s
i
o
n
+
r
e
c
a
l
l
F-Measure=\frac{2\times precision \times recall}{precision + recall}
F−Measure=precision+recall2×precision×recall
F-Measure组合了信息索中精确率(precision)与召回率(recall)的思想来进行聚类评价。
兰德指数(Rand Index)
兰德指数是一种用于比较聚类结果与真实分类之间的相似程度的指标,它可以通过比较聚类结果中的样本对是否被分到了同一个簇,以及真实分类中的样本对是否属于同一类别来度量两者之间的一致性。
- 将数据集中所有的样本两两组合,共有
N(N-1)/2
对样本,其中N
是样本的总数。 - 记
a
为聚类结果中被分到同一个簇的样本对数,b
为真实分类中被分到同一类别的样本对数。 - 兰德指数
RI
定义为 R I = a + b N ( N − 1 ) / 2 RI=\frac{a+b}{N(N-1)/2} RI=N(N−1)/2a+b。
兰德指数的取值范围为 [0, 1]
,其中:当兰德指数为1时,表示两个聚类结果完全一致;当兰德指数为0时,表示两个聚类结果之间没有任何相似性。
[!NOTE]
需要注意的是,兰德指数并不考虑类别的标签,而是基于样本对的关系来评估聚类结果的相似度。因此,它对于评估不同聚类结果的一致性具有一定的优势。然而,兰德指数也有一些局限性,例如它对数据集的不平衡性比较敏感,而且在样本数量较大时,计算复杂度较高。