调整兰德指数
调整兰德指数, ARI(Adjusted Rand Index)
常用的 外部评估指标,用于衡量两个数据划分(通常是 聚类结果 与 真实标签)之间的一致性,同时考虑了随机因素的影响
外部评估指标:只能在有标注数据的情况下使用
相反的,内部指标则不需要真实标签
核心思想
假设有一组数据,已知其 真实的分组/类别(Ground Truth),现在我们用某种聚类算法得到了一组聚类结果
ARI 要回答的问题是:聚类结果与真实标签的匹配程度有多高?算法的聚类效果怎么样?
匹配程度越高,ARI 越接近于 1,等于 1 时表示完美匹配
若 ARI 约等于 0,则表示算法的聚类结果不理想,相当于是随机划分
若 ARI 为负值,则表示聚类结果与真实标签的一致性比随机分配还差
从 RI(兰德指数)到 ARI(调整兰德指数)
兰德指数,RI(Rand Index)
RI 的计算基于 数据点对(Pairs)的划分一致性。对于数据中任意两个样本点,它们的关系在聚类结果和真实标签中只有四种情况:
| 关系 | 在真实标签中 | 在聚类结果中 |
|---|---|---|
| a | 属于同一类 | 属于同一簇 |
| b | 属于同一类 | 属于不同簇 |
| c | 属于不同类 | 属于同一簇 |
| d | 属于不同类 | 属于不同簇 |
假设有两个样本点 x、y
若 x、y 的关系是 a 或 d,则称这两个样本点是一致对
若 x、y 的关系是 b 或 c,则不是
RI 就是计算一致对的数量对占总对数的比例:
$ RI = \frac{a + d}{a + b + c + d} = \frac{a + d}{C_n^2} $
其中 $n$ 是样本总数,$C_n^2$ 就是样本点对的总数
但是 RI 存在一个问题:即使是一个随机的聚类划分,其 RI 值也不会是 0,而通常是一个正值。这使得 RI 难以在不同场景下进行公平比较,ARI 应运而生
ARI 的核心思想
将 RI 减去“随机划分情况下 RI 的期望值”,然后进行标准化,使得“完全随机”的得分在 0 附近,“完美匹配”为 1
$ ARI = \frac{RI - E[RI]}{\max(RI) - E[RI]} $
这个公式确保了 ARI 对随机性的鲁棒性,使其成为一个更可靠的指标
计算公式
ARI 的实际计算通常基于 列联表
假设真实标签有 $r$ 个类,聚类结果有 $c$ 个簇, 构建一个 $r \times c$ 的列联表 $\mathrm{N}$
| 聚类 1 | 聚类 2 | … | 聚类 c | 行和 | |
|---|---|---|---|---|---|
| 真实类 1 | $n_{11}$ | $n_{12}$ | … | $n_{1c}$ | $a_{1}$ |
| 真实类 2 | $n_{21}$ | $n_{22}$ | … | $n_{2c}$ | $a_{2}$ |
| … | … | … | … | … | … |
| 真实类 r | $n_{r1}$ | $n_{r2}$ | … | $n_{rc}$ | $a_{r}$ |
| 列和 | $b_{1}$ | $b_{2}$ | … | $b_{c}$ | $n$ (总数) |
其中
- $n_{ij}$:真实类别 $i$ 且聚类到簇 $j$ 的样本数
- $a_i = \sum_{j=1}^{c} n_{ij}$:真实类别 $i$ 的总样本数(行和)
- $b_j = \sum_{i=1}^{r} n_{ij}$:聚类簇 $j$ 的总样本数(列和)
- $n = \sum_{i=1}^{r} \sum_{j=1}^{c} n_{ij}$:总样本数
组合数表示:$\binom{x}{2} = \frac{x(x-1)}{2}$,即 $x$ 中任取两个元素的不同方式数
ARI 公式:
$$ \text{ARI} = \frac{ \sum_{i=1}^{r} \sum_{j=1}^{c} \binom{n_{ij}}{2} - \frac{ \left[ \sum_{i=1}^{r} \binom{a_i}{2} \right] \left[ \sum_{j=1}^{c} \binom{b_j}{2} \right] }{ \binom{n}{2} } }{ \frac{1}{2} \left[ \sum_{i=1}^{r} \binom{a_i}{2} + \sum_{j=1}^{c} \binom{b_j}{2} \right] - \frac{ \left[ \sum_{i=1}^{r} \binom{a_i}{2} \right] \left[ \sum_{j=1}^{c} \binom{b_j}{2} \right] }{ \binom{n}{2} } } $$
-
分子
实际一致对数 - 随机期望一致对数-
第一项即从 【$n_{11}$ 中任取两个样本的不同方式数】 加上 【$n_{12}$ 任取两个样本的不同方式数】加上。。。以此求和得到所有一致对的数量
-
第二项
考虑任意一对样本(比如样本 X 和样本 Y)。在随机独立的情况下:
它们在真实划分中在一起的概率 = $\frac{\sum_i \binom{a_i}{2}}{\binom{n}{2}}$ (因为总共有 $\binom{n}{2}$ 个样本对,其中 $\sum_i \binom{a_i}{2}$ 对在真实划分中在一起)
它们在聚类划分中在一起的概率 = $\frac{\sum_j \binom{b_j}{2}}{\binom{n}{2}}$
由于独立性,它们同时在两种划分中都在一起的概率 = 两个概率相乘
总共有 $\binom{n}{2}$ 个样本对,所以 期望一致对数量 为:
$$ E = \binom{n}{2} \times \left( \frac{\sum_i \binom{a_i}{2}}{\binom{n}{2}} \right) \times \left( \frac{\sum_j \binom{b_j}{2}}{\binom{n}{2}} \right) $$
简化后:
$$ E = \frac{ \left[ \sum_i \binom{a_i}{2} \right] \left[ \sum_j \binom{b_j}{2} \right] }{ \binom{n}{2} } $$
-
-
分母
最大可能一致对数 - 随机期望一致对数-
第一项是两个划分的 平均一致对数,可以理解为如果两个划分"完美协调"时的一致对数上限的近似
-
第二项与分子中的随机期望项相同
-
特性与优点
-
对随机性的修正
使指标值具有明确的解释性(0 = 随机,1 = 完美)
-
对称性
ARI(聚类, 真实标签) = ARI(真实标签, 聚类)
-
与簇的形状无关
ARI 只关注样本的划分是否一致,不关心簇的几何结构
而像轮廓系数这类内部指标受簇形状(球形、流形)影响大 -
对簇数量不敏感
即使聚类算法得到的簇数量与真实类别数不同,ARI 仍然能给出有意义的评估
例如,将一个正确的簇一分为二,虽然不完美,但可能仍获得较高的 ARI 值 -
需要真实标签
这是一个外部指标,只能在有标注数据的情况下使用(常用于实验验证、算法对比)
代码示例(Python)
|
|
输出:
|
|
其他指标
-
AMI(调整互信息)
同样是对随机性进行修正的外部指标,基于信息论
-
同质性、完整性、V-measure
这三个指标从不同角度评估聚类与真实标签的匹配度,V-measure 是其调和平均。它们对簇数量的不平衡更敏感
-
轮廓系数
内部指标,不需要真实标签,通过衡量样本自身簇的内聚度和与其他簇的分离度来评估。适用于无监督场景
总结
ARI 是一个经过标准化、修正了随机因素、用于评估聚类结果与真实标签一致性的核心指标
在 有监督的聚类算法评估、对比不同算法性能、或为无监督学习寻找最佳超参数(如 K-Means 的 K) 时,它是首选的评估工具之一
其值域清晰([-1, 1],随机时为 0 附近),解释性强,使得结果报告和对比非常方便