聚类评估指标全解析
在聚类任务中,评估聚类结果的质量至关重要。本文将详细介绍多种聚类评估指标,包括互信息、归一化互信息、调整互信息、Fowlkes - Mallows指数、V - Measure、Calinski - Harabasz指数和Davies - Bouldin指数。
1. 互信息(Mutual Information,MI)
互信息用于衡量两个随机变量之间的相互依赖程度,它与信息论中随机变量的熵密切相关。信息论始于Claude Shannon的论文,而“互信息”这一术语由Robert Fano命名。
假设有一个包含 $n$ 个数据的数据集,聚类基准的标记聚类集合为 $U = {U_k | k = 1, \ldots, r}$,聚类算法的预测聚类集合为 $V = {V_l | l = 1, \ldots, s}$。$U$ 和 $V$ 的熵定义如下:
[
\begin{align
}
H(U) &= -\sum_{k = 1}^{r} P(k) \log (P(k)) \
H(V) &= -\sum_{l = 1}^{s} P’(l) \log (P’(l))
\end{align
}
]
其中,$P(k) = \frac{|U_k|}{n}$ 是随机选择的数据属于聚类 $U_k$ 的概率,$P’(l) = \frac{|V_l|}{n}$ 是随机选择的数据属于聚类 $V_l$ 的概率。
$U$ 和 $V$ 之间的互信息可以通过以下公式计算:
[
MI(U, V) = \sum_{k = 1}^{r} \sum_{l = 1}^{s} P(k, l) \log \left(\frac{P(k, l)}{P(k)P’(l)}\right)
]
其中,$P(k, l) = \frac{|U_k \cap V_l|}{n}$ 是随机选择的数据同时属于聚类 $U_k$ 和 $V_l$ 的概率。
互信息 $MI(\cdot)$ 是非负的,其上限为熵 $H(U)$ 和 $H(V)$。它量化了两个聚类共享的信息,因此可用于衡量聚类的相似性。
2. 归一化互信息(Normalized Mutual Information,NMI)
2002年提出了归一化互信息的概念,其定义为:
[
NMI = \frac{MI (U, V)}{\text{mean} (H (U), H (V))}
]
无论基准聚类之间“互信息”的实际数量如何,互信息和归一化信息的值不会因随机性而调整,而是会随着不同基准聚类数量的增加而趋于增大。归一化互信息的取值范围是 $[0, 1]$。
3. 调整互信息(Adjusted Mutual Information,AMI)
2009年提出了调整互信息,其定义为:
[
AMI = \frac{MI - E[MI]}{\text{mean} (H (U), H (V)) - E[MI]}
]
如果两个聚类算法相同,$AMI$ 等于1;如果两个聚类算法的 $MI$ 等于期望值,$AMI$ 等于0。
调整兰德指数和调整互信息的表达式相似,都可用于衡量聚类算法与聚类基准之间的相似性,但它们存在以下区别:
|比较维度|调整兰德指数|调整互信息|
| ---- | ---- | ---- |
|提出时间|1985年|2009年|
|方法原理|使用成对计数方法|基于信息论|
|使用场景|聚类基准有大小几乎相同的大聚类时使用|聚类基准不平衡且有小聚类时使用|
4. Fowlkes - Mallows指数(Fowlkes - Mallows Index,FMI)
Fowlkes - Mallows指数用于衡量两个聚类算法的相似性,它可以用于衡量两个层次聚类算法的相似性,也可用于衡量两个非层次聚类算法与聚类基准的相似性。
给定 $n$ 个数据和两个层次聚类树 $C$ 和 $C’$,可以通过选择树的特定高度或设置不同的聚类强度来生成 $k = 2, \ldots, n - 1$ 个聚类。对于每个特定的 $k$ 值,可以生成一个混淆矩阵 $M = (m_{i,j})$,其中 $i = 1, \ldots, k$,$j = 1, \ldots, k$。
特定 $k$ 值下的Fowlkes - Mallows指数定义为:
[
FMI_k = \frac{T_k}{\sqrt{P_k \cdot Q_k}}
]
其中:
[
\begin{align
}
T_k &= \sum_{i = 1}^{k} \sum_{j = 1}^{k} m_{i,j}^2 - n \
P_k &= \sum_{i = 1}^{k} \left(\sum_{j = 1}^{k} m_{i,j}\right)^2 - n \
Q_k &= \sum_{j = 1}^{k} \left(\sum_{i = 1}^{k} m_{i,j}\right)^2 - n
\end{align
}
]
另一种计算Fowlkes - Mallows指数的方法是统计在两个聚类中都出现在同一聚类中的数据点对的数量。设 $U$ 是聚类基准的标记聚类集合,$V$ 是聚类算法的预测聚类集合,则Fowlkes - Mallows指数定义为:
[
FMI = \frac{TP}{\sqrt{(TP + FP) (TP + FN)}}
]
其中:
- $TP$:真阳性,即同时出现在 $U$ 和 $V$ 同一聚类中的数据点对的数量。
- $FP$:假阳性,即出现在 $U$ 同一聚类但不在 $V$ 同一聚类中的数据点对的数量。
- $FN$:假阴性,即出现在 $V$ 同一聚类但不在 $U$ 同一聚类中的数据点对的数量。
Fowlkes - Mallows指数的取值范围是 $[0, 1]$,分数越高,两个聚类之间的相似性越好。
5. V - Measure
V - Measure于2007年提出,可用于衡量聚类算法与聚类基准之间的相似性。它基于聚类分配的两个指标:
- 同质性(Homogeneity):每个聚类只包含一个类别的成员。
- 完整性(Completeness):同一类别的所有成员都被分配到同一个聚类。
给定一个包含 $n$ 个数据的数据集,聚类基准的标记聚类集合为 $U = {U_k | k = 1, \ldots, r}$,聚类算法的预测聚类集合为 $V = {V_l | l = 1, \ldots, s}$,由 $U$ 和 $V$ 生成的混淆矩阵为 $M = (m_{k,l})$。
同质性和完整性的正式定义如下:
[
\begin{align
}
h &= 1 - \frac{H(U|V)}{H(U)} \
c &= 1 - \frac{H(V|U)}{H(V)}
\end{align
}
]
其中,条件熵 $H(U|V)$ 和 $H(V|U)$ 定义为:
[
\begin{align
}
H(U|V) &= -\sum_{k = 1}^{r} \sum_{l = 1}^{s} \frac{m_{k,l}}{n} \log \left(\frac{m_{k,l}}{m_{\cdot,l}}\right) \
H(V|U) &= -\sum_{l = 1}^{s} \sum_{k = 1}^{r} \frac{m_{k,l}}{n} \log \left(\frac{m_{k,l}}{m_{k,\cdot}}\right)
\end{align
}
]
$H(U)$ 和 $H(V)$ 的熵可以通过以下公式计算:
[
\begin{align
}
H(U) &= -\sum_{k = 1}^{r} \frac{m_{k,\cdot}}{n} \log \left(\frac{m_{k,\cdot}}{n}\right) \
H(V) &= -\sum_{l = 1}^{s} \frac{m_{\cdot,l}}{n} \log \left(\frac{m_{\cdot,l}}{n}\right)
\end{align
}
]
其中,$m_{\cdot,l} = \sum_{k = 1}^{r} m_{k,l}$,$m_{k,\cdot} = \sum_{l = 1}^{s} m_{k,l}$。
V - Measure定义为同质性和完整性的调和平均值:
[
V = 2 \cdot \frac{h \cdot c}{h + c}
]
以下是上述几种指标在评估聚类结果时的流程:
graph TD;
A[获取数据集和聚类结果] --> B[计算熵H(U)和H(V)];
B --> C[计算互信息MI(U, V)];
C --> D[计算归一化互信息NMI];
C --> E[计算调整互信息AMI];
A --> F[生成混淆矩阵M];
F --> G[计算Fowlkes - Mallows指数FMI];
F --> H[计算同质性h和完整性c];
H --> I[计算V - Measure];
6. Calinski - Harabasz指数(Calinski - Harabasz Index,CHI)
Calinski - Harabasz指数也称为方差比准则(VRC),可用于评估聚类模型。它衡量数据点的凝聚性和分离性,凝聚性指数据点到聚类质心的距离,分离性指聚类质心到全局质心的距离。
给定一个数据集 $D = {x_i | i = 1, \ldots, n}$ 和 $n$ 个数据点分配到 $k$ 个聚类的情况,Calinski - Harabasz指数定义为:
[
CHI = \left[\frac{B_k}{(k - 1)}\right] / \left[\frac{W_k}{(n - k)}\right]
]
其中,$B_k$ 是聚类间离散矩阵,$W_k$ 是聚类内离散矩阵。它们的计算公式如下:
[
\begin{align
}
B_k &= \sum_{j = 1}^{k} n_k |c_k - c|^2 \
W_k &= \sum_{j = 1}^{k} \sum_{i = 1}^{n_k} |x_i - c_k|^2
\end{align
}
]
其中,$n_k$ 和 $c_k$ 分别是第 $k$ 个聚类中的数据点数量和质心,$c$ 是数据集中所有数据点的质心。Calinski - Harabasz指数越高,聚类模型越好。
7. Davies - Bouldin指数(Davies - Bouldin Index,DBI)
Davies - Bouldin指数于1979年提出,通过计算聚类之间的平均相似性来评估聚类模型。
给定 $N$ 个聚类,设 $G_j$ 表示第 $j$ 个聚类,$x_i$ 是 $G_j$ 中的一个数据点,$r_j$ 是 $G_j$ 的质心,则 $G_j$ 中每个点到其质心的平均距离 $S_j$ 为:
[
S_j = \left(\frac{1}{|G_j|} \sum_{i = 1}^{|G_j|} |x_i - r_j|_p^q\right)^{\frac{1}{q}}
]
当 $q = 1$ 时,$S_j$ 是平均欧几里得距离,$p$ 通常设置为2。
聚类 $G_j$ 和 $G_{j’}$ 之间的偏差率为:
[
M_{j,j’} = |G_j - G_{j’}|_p
]
$p$ 通常设置为2。
设 $R_{j,j’}$ 是衡量聚类方案质量的指标,它需要考虑聚类 $j$ 和 $j’$ 之间的差异(理想情况下应尽可能大)以及聚类 $j$ 的凝聚性(应尽可能低)。满足上述条件的 $R_{j,j’}$ 定义为:
[
R_{j,j’} = \frac{S_j + S_{j’}}{M_{j,j’}}
]
Davies - Bouldin指数定义为:
[
DBI = \frac{1}{N} \sum_{j = 1}^{N} \max_{j \neq j’} R_{j,j’}
]
Davies - Bouldin指数越低,聚类模型越好。
综上所述,不同的聚类评估指标适用于不同的场景。在实际应用中,我们可以根据具体的聚类任务和数据特点选择合适的评估指标,以准确评估聚类结果的质量。例如,如果聚类基准有大小几乎相同的大聚类,可以选择调整兰德指数;如果聚类基准不平衡且有小聚类,则调整互信息可能更合适。同时,通过结合多种评估指标,可以更全面地了解聚类模型的性能。
聚类评估指标全解析(续)
在前面的内容中,我们已经详细介绍了多种聚类评估指标的定义、计算方法以及它们之间的区别。接下来,我们将进一步探讨这些指标在实际应用中的选择和注意事项,以及不同指标之间的关联。
指标选择的考量因素
在实际的聚类任务中,选择合适的评估指标至关重要,因为不同的指标对聚类结果的评价侧重点不同。以下是一些在选择指标时需要考虑的因素:
- 数据分布 :如果数据集中的聚类大小比较均匀,那么像调整兰德指数可能是一个不错的选择;而当聚类大小差异较大,即存在不平衡的情况时,调整互信息可能更能准确反映聚类的质量。例如,在一个客户细分的聚类任务中,如果大部分客户集中在少数几个大的聚类中,同时存在一些小的特殊客户群体聚类,这时调整互信息就能更好地评估聚类算法对于这些小聚类的处理效果。
- 聚类类型 :对于层次聚类算法,Fowlkes - Mallows指数可以通过对不同层次的聚类结果进行评估,帮助我们找到最合适的聚类层次。而非层次聚类算法则可以综合考虑多种指标,如互信息、V - Measure等。
- 应用场景 :如果聚类的目的是为了将数据划分为不同的类别,并且每个类别有明确的定义,那么同质性和完整性较高的V - Measure可能更符合需求。例如,在文本分类的聚类任务中,每个聚类应该只包含同一主题的文档,此时V - Measure可以很好地衡量聚类结果与真实分类的一致性。
不同指标之间的关联
虽然这些聚类评估指标从不同的角度对聚类结果进行评价,但它们之间也存在一定的关联。
- 互信息相关指标 :互信息、归一化互信息和调整互信息都基于信息论的原理,它们都试图衡量两个聚类集合之间的相似性。互信息是基础,归一化互信息通过对互信息进行归一化处理,使得其取值范围在 $[0, 1]$ 之间,便于不同数据集和聚类结果之间的比较。调整互信息则考虑了随机因素的影响,在评估聚类结果时更加稳健。
- 基于混淆矩阵的指标 :Fowlkes - Mallows指数和V - Measure都需要生成混淆矩阵来进行计算。混淆矩阵可以直观地展示聚类结果与真实分类之间的匹配情况。Fowlkes - Mallows指数通过计算真阳性、假阳性和假阴性的数量来评估聚类的相似性,而V - Measure则从同质性和完整性的角度出发,综合考虑了聚类的纯度和完整性。
实际应用中的操作步骤
在实际应用中,我们可以按照以下步骤来使用这些评估指标:
- 数据准备 :获取数据集,并使用聚类算法对数据进行聚类,得到聚类结果。
-
指标计算
:
- 计算熵 $H(U)$ 和 $H(V)$,用于后续互信息相关指标的计算。
- 生成混淆矩阵,为Fowlkes - Mallows指数和V - Measure的计算做准备。
- 根据具体的指标公式,依次计算互信息、归一化互信息、调整互信息、Fowlkes - Mallows指数、V - Measure、Calinski - Harabasz指数和Davies - Bouldin指数。
-
结果分析
:
- 分析各个指标的取值,判断聚类结果的质量。例如,Fowlkes - Mallows指数和V - Measure越接近1,说明聚类结果与真实分类越相似;Calinski - Harabasz指数越高,聚类模型的凝聚性和分离性越好;Davies - Bouldin指数越低,聚类模型的聚类效果越好。
- 综合考虑多个指标的结果,避免单一指标的局限性。例如,如果某个指标显示聚类结果较好,但其他指标显示存在问题,那么需要进一步分析数据和聚类算法,找出可能的原因。
以下是一个简单的表格,总结了各个指标的特点和适用场景:
|指标名称|特点|适用场景|
| ---- | ---- | ---- |
|互信息(MI)|量化两个聚类共享的信息|衡量聚类的相似性|
|归一化互信息(NMI)|取值范围在 $[0, 1]$,便于比较|不同数据集和聚类结果的比较|
|调整互信息(AMI)|考虑随机因素,更稳健|聚类基准不平衡的情况|
|Fowlkes - Mallows指数(FMI)|可用于层次和非层次聚类|评估聚类算法的相似性|
|V - Measure|基于同质性和完整性|需要考虑聚类纯度和完整性的场景|
|Calinski - Harabasz指数(CHI)|衡量凝聚性和分离性|评估聚类模型的总体质量|
|Davies - Bouldin指数(DBI)|计算聚类之间的平均相似性|评估聚类模型的紧凑性和分离性|
注意事项
在使用这些聚类评估指标时,还需要注意以下几点:
- 指标的局限性 :每个指标都有其局限性,不能完全代表聚类结果的所有方面。例如,互信息相关指标主要关注两个聚类集合之间的信息共享,而忽略了聚类内部的结构;Calinski - Harabasz指数和Davies - Bouldin指数对于聚类数量的选择比较敏感。
- 真实标签的可用性 :一些指标,如互信息、Fowlkes - Mallows指数和V - Measure,需要有真实的聚类标签作为基准。在实际应用中,可能无法获取真实标签,这时可以考虑使用一些不需要真实标签的内部评估指标,如Calinski - Harabasz指数和Davies - Bouldin指数。
- 计算复杂度 :部分指标的计算复杂度较高,特别是当数据集较大时,计算时间可能会较长。在实际应用中,需要根据数据集的规模和计算资源来选择合适的指标。
总之,聚类评估指标是评估聚类结果质量的重要工具。通过深入了解这些指标的特点、适用场景和计算方法,我们可以在实际的聚类任务中选择合适的指标,准确评估聚类结果,从而优化聚类算法,提高聚类的效果。同时,结合多种指标进行综合评估,可以更全面地了解聚类模型的性能,为实际应用提供更可靠的支持。
以下是一个综合使用多种指标评估聚类结果的流程:
graph TD;
A[获取数据集] --> B[选择聚类算法进行聚类];
B --> C[判断是否有真实标签];
C -- 有 --> D[计算基于真实标签的指标: MI, NMI, AMI, FMI, V - Measure];
C -- 无 --> E[计算内部评估指标: CHI, DBI];
D --> F[综合分析指标结果];
E --> F;
F --> G[根据结果优化聚类算法];
G --> B;
通过这个流程,我们可以不断地优化聚类算法,提高聚类结果的质量,从而更好地满足实际应用的需求。
超级会员免费看
37

被折叠的 条评论
为什么被折叠?



