做降维(dimensionality reduction)或聚类(clustering)算法研究时,最烦人的事之一就是:效果好不好,要看很多个侧面,没有一个指标能包打天下。这篇把常见的评价指标整理一下,方便以后查。


一、降维评价指标

降维的目标是用低维表示 $Z \in \mathbb{R}^{n \times d}$ 来近似高维数据 $X \in \mathbb{R}^{n \times D}$($d \ll D$)的某种结构。不同的指标侧重不同的”结构”。

1.1 邻域保持类

这类指标的核心思想:如果高维空间中两个点很近,低维中也应该很近;反之亦然。

Trustworthiness(信任度)

度量低维空间中有多少”假邻居”——那些在低维中靠得很近但在高维中并不近的点。值越高越好。

\[\text{Trustworthiness}(k) = 1 - \frac{2}{nk(2n - 3k - 1)} \sum_{i=1}^n \sum_{j \in \mathcal{N}_i^k(Z)} \max(0, r(i,j) - k)\]

其中 $\mathcal{N}_i^k(Z)$ 是点 $i$ 在低维空间的 $k$ 近邻,$r(i,j)$ 是点 $j$ 在高维空间中对点 $i$ 的秩。惩罚的是那些本不是近邻却被拉进低维邻域的点。

Continuity(连续性)

Trustworthiness 的对称版本——度量高维空间中近邻的点,在低维中是否还保持为近邻。惩罚的是那些高维中本是近邻但在低维中被推开的点。

\[\text{Continuity}(k) = 1 - \frac{2}{nk(2n - 3k - 1)} \sum_{i=1}^n \sum_{j \in \mathcal{N}_i^k(X)} \max(0, \hat{r}(i,j) - k)\]

Trustworthiness + Continuity 是所有降维论文的标配,几乎成了标准。一般取不同的 $k$ 画曲线看整体表现。

Mean Relative Rank Error(MRRE)

不只看 binary 的”在/不在”近邻集里,而是衡量秩的偏差程度:

\[\text{MRRE}(k) = \frac{1}{n} \sum_{i=1}^n \frac{1}{k} \sum_{j \in \mathcal{N}_i^k(X)} \frac{|r_X(i,j) - r_Z(i,j)|}{\max(r_X(i,j), r_Z(i,j))}\]

这里 $r_X(i,j)$ 是 $j$ 在 $X$ 中对 $i$ 的秩,$r_Z(i,j)$ 是 $j$ 在 $Z$ 中对 $i$ 的秩。值越小越好。

Neighborhood Preservation / Neighbourhood Hit

对每个点,看它的 $k$ 近邻中有多少个在高低维中保持一致的比例:

\[\text{NH}(k) = \frac{1}{n} \sum_{i=1}^n \frac{|\mathcal{N}_i^k(X) \cap \mathcal{N}_i^k(Z)|}{k}\]

AUC of ROC for Neighborhood Preservation

以 $k$ 为横轴、$\text{NH}(k)$ 为纵轴画曲线,曲线下的面积:

\[\text{AUC-NP} = \int_1^{n-1} \text{NH}(k) \, dk \approx \sum_{k=1}^{n-2} \frac{\text{NH}(k) + \text{NH}(k+1)}{2}\]

具体算法: 1. 对每个 $k=1$ 到 $n-1$,计算 $\text{NH}(k)$ 2. 对相邻 $k$ 的 NH 值做梯形积分 3. 归一化到 $[0, 1]$:$\text{AUC-NP} / (n-2)$

值越接近 1 越好。优点是给出一个标量,不用看多 $k$ 曲线。

Co-ranking Matrix & LCMC(Local Continuity Meta-Criterion) ⭐

Lee & Verleysen (2009) 提出的统一框架。记录每个点对在高低维的秩,构造 co-ranking 矩阵 $Q = {q_{kl}}$,其中 $q_{kl}$ 是”高维中秩为 $k$、低维中秩为 $l$”的点对数量:

\[Q_{kl} = \#\{(i,j): r_X(i,j) = k \text{ and } r_Z(i,j) = l\}\]

基于此可以定义任意 $k$ 下的LCMC——同时考虑了 Trustworthiness 和 Continuity:

\[\text{LCMC}(k) = \frac{1}{nk} \sum_{i=1}^k \sum_{j=1}^k Q_{ij} - \frac{k}{n-1}\]

其中第一项是邻域命中率(hit rate),第二项减去随机期望。$\text{LCMC}(k) = \text{Trustworthiness}(k) + \text{Continuity}(k) - 1$,所以它本质上是两者的加总。

优势:用一个指标替代两个,且 $k$ 从 $1$ 到 $n-1$ 的 LCMC 曲线下的面积(AUC of LCMC)可以作为降维质量的单一标量评价。

Triplet Accuracy(三元组准确率) ⭐

考察高低维空间中的三元组关系是否一致。对任意三个点 $(i,j,k)$,如果 $d_X(i,j) < d_X(i,k)$,则希望在低维中也有 $d_Z(i,j) < d_Z(i,k)$:

\[\text{TripletAcc} = \frac{1}{\binom{n}{3}} \sum_{i,j,k: i<j\neq k} \mathbb{1}\big( (d_X(i,j) < d_X(i,k)) \iff (d_Z(i,j) < d_Z(i,k)) \big)\]

取值范围 $[0.5, 1]$——随机排序的期望是 0.5。这个指标比 Trustworthiness 更全局,因为它不受限于邻域,而是考察所有的相对位置关系。

C Measure

Lebanon et al. 提出,基于所有三元组关系的一致程度:

\[C = \frac{1}{\binom{n}{3}} \sum_{i,j,k} \mathbb{1}\big((d_X(i,j)-d_X(i,k))(d_Z(i,j)-d_Z(i,k)) > 0\big)\]

与 Triplet Accuracy 本质相同,但实现更直接。值越大越好。

KL Divergence / Cross-Entropy(损失函数类)

t-SNE 和 UMAP 各自优化一个特定的损失函数。这些损失本身也可以用来评价嵌入质量:

  • t-SNE KL: $\text{KL}(P|Q) = \sum_{i,j} p_{ij} \log \frac{p_{ij}}{q_{ij}}$ — 惩罚高维近邻在低维中被拉远
  • UMAP CE: $\text{CE}(P|Q) = \sum_{i,j} p_{ij} \log \frac{p_{ij}}{q_{ij}} + \sum_{i,j} (1-p_{ij}) \log \frac{1-p_{ij}}{1-q_{ij}}$ — 同时惩罚高维远的点在低维中被拉近

不过这些指标偏向各自的方法,跨方法比较时不够公平。

Normalized Stress / Trustworthiness 谱系一览

Lee & Verleysen (2010) 的经典综述把降维评价指标归纳为一个谱系:

全局距离保持 ←——————→ 局部邻域保持 Stress Trustworthiness Sammon Stress Continuity Spearman ρ LCMC Triplet Accuracy k-NN preservation Procrustes Co-ranking

没有单一的”最好”指标——取决于你关心数据结构的哪个层次。

1.2 距离保持类

Spearman / Rank Correlation

高维距离矩阵 ${d_X(i,j)}$ 与低维距离矩阵 ${d_Z(i,j)}$ 之间的秩相关系数(去掉对角线的所有点对)。值越接近1说明距离顺序保持得越好。

Shepard Diagram / Stress

Shepard diagram 是散点图,横轴为高维距离,纵轴为低维距离,理想情况所有点落在 $y=x$ 上。

Stress(归一化残差) 则量化偏离程度:

\[\text{Stress} = \frac{\sum_{i<j} (d_X(i,j) - d_Z(i,j))^2}{\sum_{i<j} d_X(i,j)^2}\]

MDS 系列方法直接优化这个指标,其他方法(t-SNE、UMAP)通常不直接优化它但可以用它来评价。

Sammon’s Stress

与 Stress 类似但给短距离更高权重:

\[E_{\text{Sammon}} = \frac{1}{\sum_{i<j} d_X(i,j)} \sum_{i<j} \frac{(d_X(i,j) - d_Z(i,j))^2}{d_X(i,j)}\]

Residual Variance

\[\text{Residual Var} = 1 - \rho^2(D_X, D_Z)\]

其中 $\rho$ 是 Pearson 相关。值越小越好。

1.4 下游任务类(Downstream Task Evaluation) ⭐

这是更常用也更有说服力的做法:降维后的低维嵌入 $Z$ 不直接看结构保持,而是跑一个下游任务,看降维后的数据能不能把任务做好。如果下游任务表现好,说明降维保住了任务相关的信息。

K-means 聚类质量(K-means on Embedding)

对低维嵌入 $Z$ 跑 k-means(用欧氏距离),然后用 ARI / NMI / AMI / Silhouette 评估聚类质量:

\[\text{DR-KMeans-ARI} = \text{ARI}\big(\text{KMeans}(Z, k), Y\big)\]

这是 t-SNE、UMAP、PCA 论文里最常用来对比的方法之一——虽然降维方法本身没有聚类,但如果嵌入空间本身是”好”的,k-means 应该能从中提取出有意义的簇。

指标选哪个: - 有标签数据:ARI 或 NMI,看聚类是否与真实标签对齐 - 无标签数据:Silhouette,看嵌入空间中是否存在自然的簇结构

KNN 分类准确率(KNN Accuracy on Embedding)

在低维嵌入 $Z$ 上跑一个简单的 $k$-近邻分类器,用真实标签算准确率:

\[\text{KNN-ACC}(k) = \frac{1}{n} \sum_{i=1}^n \mathbb{1}\big(\text{KNN}(Z_{-i}, k) = y_i\big)\]

一般取 $k=1$ 或 $k=5$,用留一法(LOO)或交叉验证。值越高说明嵌入空间保留了类别判别信息。

为什么有效: KNN 是一个没有归纳偏置的非参数分类器——如果它在低维嵌入上表现好,说明降维真的保留了数据的判别结构,而不只是拟合了某个特定分类器的偏好。

很多论文会用 1-NN LOO accuracy 作为标准指标,简单、可复现。

KNN 检索/回召(KNN Retrieval Precision)

对每个查询点,看它在低维空间的 $k$ 近邻中有多少与它同标签:

\[\text{KNN-Precision}(k) = \frac{1}{n} \sum_{i=1}^n \frac{|\mathcal{N}_i^k(Z) \cap \text{same-class}(i)|}{k}\]

相当于另一种量化的邻域保持,但不是看高维邻居是否被保持,而是直接看语义标签是否在嵌入空间中局部一致。

Reconstruction-based(重建误差法)

如果降维方法有显式的解码/重建机制: - PCA:$|X - ZW^T|_F^2$ - Autoencoder:$|X - \text{Dec}(Z)|_2^2$ - Distributional Reduction:低维原型点通过 srGW 映射回高维的重建误差

但注意:很多流行降维方法(t-SNE, UMAP)没有自然的重建机制。

1.5 全局结构保持类

Procrustes Analysis

通过旋转/缩放/平移将低维嵌入对齐到高维空间的某种参考(如PCA的结果),然后计算均方根误差:

\[\text{Procrustes RMSE} = \min_{R, t, s} \frac{1}{n} \| ZR + t - sX_{\text{ref}}\|_F^2\]

反映了降维结果与”标准”全局结构之间的形状差异。

Explained Variance(PCA特有)

\[\text{EV}(d) = \frac{\sum_{j=1}^d \lambda_j}{\sum_{j=1}^D \lambda_j}\]

对于 PCA 直接适用,对非线性降维方法意义不大。

Kruskal’s Stress

\[\text{Stress-1} = \sqrt{\frac{\sum_{i<j} \big(d_Z(i,j) - \hat{d}(i,j)\big)^2}{\sum_{i<j} d_Z(i,j)^2}}\]

适用于 MDS 类方法,$\hat{d}$ 是最优单调回归后的距离。


二、聚类评价指标

聚类指标分为两类:外部指标(有ground truth标签)和内部指标(无标签,仅靠数据自身结构)。

2.1 外部指标

假设真实标签为 $Y$,聚类结果为 $\hat{Y}$。

Adjusted Rand Index(ARI)

ARI 是 Rand Index 的修正版,排除了随机聚类的期望值:

\[\text{ARI} = \frac{\text{RI} - \mathbb{E}[\text{RI}]}{\max(\text{RI}) - \mathbb{E}[\text{RI}]}\]

用计数表表示:设 $n_{ij}$ 为真实类别 $i$、聚类 $j$ 中的样本数,$a_i$ 为真实类别 $i$ 的总数,$b_j$ 为聚类 $j$ 的总数。

\[\text{ARI} = \frac{\sum_{ij} \binom{n_{ij}}{2} - \big[\sum_i \binom{a_i}{2} \sum_j \binom{b_j}{2}\big] / \binom{n}{2}}{\frac{1}{2} \big[\sum_i \binom{a_i}{2} + \sum_j \binom{b_j}{2}\big] - \big[\sum_i \binom{a_i}{2} \sum_j \binom{b_j}{2}\big] / \binom{n}{2}}\]

取值 $[-1, 1]$,1 是完全一致,0 是随机。最推荐的外部指标——对类别不平衡不敏感。

Normalized Mutual Information(NMI)

\[\text{NMI}(Y, \hat{Y}) = \frac{2 I(Y; \hat{Y})}{H(Y) + H(\hat{Y})}\]

$I$ 是互信息,$H$ 是熵。取值 $[0, 1]$。

Adjusted Mutual Information(AMI)

NMI 的修正版,同样排除了随机期望值:

\[\text{AMI} = \frac{\text{MI} - \mathbb{E}[\text{MI}]}{\max(H(Y), H(\hat{Y})) - \mathbb{E}[\text{MI}]}\]

比 NMI 更可靠,对聚类数多少更鲁棒。

Homogeneity, Completeness, V-measure

  • Homogeneity(同质性):每个聚类中只包含单个类别的样本
  • Completeness(完整性):同一类别的所有样本被分到同一个聚类中
  • V-measure:两者的调和平均
\[h = 1 - \frac{H(Y | \hat{Y})}{H(Y)},\quad c = 1 - \frac{H(\hat{Y} | Y)}{H(\hat{Y})},\quad V = 2\frac{hc}{h+c}\]

Fowlkes-Mallows Index(FMI)

\[\text{FMI} = \frac{\text{TP}}{\sqrt{(\text{TP} + \text{FP})(\text{TP} + \text{FN})}}\]

基于点对的分类——所有样本对要么在同一聚类中(正),要么不在(负)。取值 $[0, 1]$。

Purity(纯度)

\[\text{Purity} = \frac{1}{n} \sum_{j=1}^k \max_i n_{ij}\]

简单直观的缺点:聚类数越多纯度越高,且对不平衡很敏感。

Clustering Accuracy(ACC)

先用匈牙利算法(Hungarian algorithm)做聚类与真实标签的最佳匹配,再算准确率。常用于 k-means 等论文。

Pairwise F-measure

计算所有点对的精确率和召回率的调和平均,与FMI类似但可以调 $\beta$ 权重。

Rand Index(原始 RI)

\[\text{RI} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}}\]

取值 $[0, 1]$。注意它没有做随机校正——所以当聚类数增多时 RI 天然偏高。ARI 通常是更好的选择,但 RI 更直觉,有时用于简单汇报。

Variation of Information(VI)

Meilă (2003, 2007) 从信息论角度定义的两个聚类之间的距离:

\[\text{VI}(Y, \hat{Y}) = H(Y) + H(\hat{Y}) - 2 I(Y; \hat{Y}) = H(Y | \hat{Y}) + H(\hat{Y} | Y)\]

取值 $[0, \log n]$,越小越好。VI 是严格的度量(满足三角不等式),而 NMI/ARI 不是。在聚类比较的理论分析中非常有用,但实践中的解读不如 NMI 直观。

Cophenetic Correlation Coefficient(共表型相关系数)

专用于评估层次聚类(hierarchical clustering)的树状图质量。

算法流程: 1. 对数据做层次聚类,得到树状图(dendrogram) 2. 对每对点 $(i,j)$,提取它们在树状图中首次合并时的高度(cophenetic distance),记为 $c_{ij}$ 3. 计算 $C = \text{Corr}(d_{ij}, c_{ij})$,即原始距离矩阵 ${d_{ij}}$ 与共表型距离矩阵 ${c_{ij}}$ 的 Pearson 相关系数:

\[C = \frac{\sum_{i<j} (d_{ij} - \bar{d})(c_{ij} - \bar{c})}{\sqrt{\sum_{i<j} (d_{ij} - \bar{d})^2} \sqrt{\sum_{i<j} (c_{ij} - \bar{c})^2}}\]

值越接近 1 越好——说明树状图忠实地反映了原始距离结构。

注意事项: 仅适用于层次聚类(agglomerative/divisive),不适用于 k-means 等扁平聚类。

2.2 内部指标

没有真实标签时,靠数据的几何结构来评估聚类质量。

Silhouette Score(轮廓系数)

对每个样本 $i$,计算: - $a(i)$:与同簇其他样本的平均距离(簇内紧致度) - $b(i)$:与最近邻簇中所有样本的平均距离(簇间分离度)

\[s(i) = \frac{b(i) - a(i)}{\max(a(i), b(i))},\quad \text{Silhouette} = \frac{1}{n}\sum_{i=1}^n s(i)\]

取值 $[-1, 1]$,越大越好。最常用的内部指标,但计算复杂度 $O(n^2)$。 对凸簇有效,对任意形状的簇可能失真。

Davies–Bouldin Index(DBI)

\[\text{DBI} = \frac{1}{k} \sum_{i=1}^k \max_{j \neq i} \frac{\sigma_i + \sigma_j}{d(c_i, c_j)}\]

其中 $\sigma_i$ 是簇 $i$ 中点到中心的平均距离,$d(c_i, c_j)$ 是两簇中心的距离。值越小越好。

Calinski–Harabasz Index(CH / VRC)

\[\text{CH} = \frac{\text{Tr}(B_k)}{\text{Tr}(W_k)} \times \frac{n - k}{k - 1}\]

$B_k$ 是簇间散度矩阵,$W_k$ 是簇内散度矩阵。值越大越好。计算快,但假设凸簇。

Dunn Index

\[\text{Dunn} = \frac{\min_{i \neq j} \delta(C_i, C_j)}{\max_{1 \leq l \leq k} \Delta(C_l)}\]

$\delta$ 是两簇间最小距离(最短的簇间距离),$\Delta$ 是簇内最大直径(最远的两点距离)。值越大越好。对离群点很敏感。

Gap Statistic

比较实际数据的 WSS(within-cluster sum of squares)与随机均匀数据的 WSS:

\[\text{Gap}(k) = \mathbb{E}[\log W_{\text{null}}(k)] - \log W(k)\]

选择使 Gap 最大的 $k$,或 Gap 增速突然放缓的 $k$。

Ball-Hall Index

\[\text{Ball-Hall} = \frac{1}{k} \sum_{i=1}^k \frac{W_i}{n_i}\]

其中 $W_i$ 是簇 $i$ 内各点到中心距离的平方和,$n_i$ 是簇 $i$ 中点数。值越小越好。

Hubert’s Gamma(Hubert’s Γ 统计量)

计算点对”是否属于同一簇”与”距离远近”之间的相关性。构造两个矩阵: - $P$:$P_{ij} = 1$ 如果 $i,j$ 在同一簇,否则 0 - $D$:$d_X(i,j)$(或单调变换)

\[\Gamma = \frac{1}{M} \sum_{i=1}^{n-1} \sum_{j=i+1}^n \frac{(P_{ij} - \bar{P})(D_{ij} - \bar{D})}{\sigma_P \sigma_D}\]

取值 $[-1, 1]$,越大越好。归一化版本称为 Hubert’s normalized Gamma

Point Biserial Correlation(点二列相关)

同样是基于点对的相关性——看”距离”与”是否同簇”的 Pearson 相关:

\[\text{PB} = \frac{\bar{d}_{\text{within}} - \bar{d}_{\text{between}}}{\sigma_d} \sqrt{\frac{n_{\text{within}} \cdot n_{\text{between}}}{n(n-1)/2}}\]

负值说明簇内距离小于簇间距离——这是期望的情况。

BIC / AIC(信息准则类)

对基于概率模型的聚类(GMM):

\[\text{BIC} = -2\log L(\hat{\theta}) + k \log n, \quad \text{AIC} = -2\log L(\hat{\theta}) + 2k\]

选择 BIC 或 AIC 最小的 $k$。BIC 更保守(惩罚更重)。聚类形状(协方差结构)的选择也通过 BIC 比较。

Clustering Stability / Consensus Clustering(聚类稳定性) ⭐

核心思想:好的聚类应对数据扰动不敏感。通过重采样评估。

通用算法(bootstrap + ARI): ``` 输入:数据 X,聚类算法 A,聚类数 k,重采样次数 B 输出:稳定性得分 S

for b = 1 to B: 1. 从 X 中 bootstrap 采样(有放回),得到 X_b 2. 在 X_b 上跑 A,得聚类标签 y_b 3. 在 X 的原始点上,用最近邻映射 y_b 到全量标签 y_b^full (或:对不在 X_b 中的点用 A 预测)

计算一致性矩阵 C: C[i][j] = (样本 i,j 在 bootstrap 中同时出现的次数中, 它们被分到同一簇的比例)

计算稳定性:S = 在 C 上跑 A 的 ARI 或 S = mean_{b≠b’} ARI(y_b^full, y_{b’}^full) ```

如果聚类方法对数据扰动敏感,说明发现的结构虚假。稳定性好的聚类更可信。

公式版:

\[\text{Stability} = \frac{2}{B(B-1)} \sum_{1 \leq b < b' \leq B} \text{ARI}(\hat{Y}_b, \hat{Y}_{b'})\]

常见的稳定性方法: - Brecken’s method:子样本聚类 → 用最近邻分类器预测剩余样本 → 比较两次预测的一致性 - Lange’s method:类似重采样 + kappa 系数而不是 ARI - Ben-Hur’s method:基于自洽性(self-consistency)的图结构分析

计算量警告: $O(B \cdot T_A)$,其中 $T_A$ 是聚类算法的单次运行时间。B=20~50 是常见的折中。

其他内部指标(快速参考)

指标 完整公式 计算流程 越小越好?
Scott-Symons $\sum_{i=1}^k n_i \log \frac{|W_i|}{n_i}$ 1. 对每个簇 $i$,计算类内协方差矩阵 $W_i$
2. $|W_i|$ 是 $W_i$ 的行列式
3. 加权求和
越小
Krzanowski-Lai $\text{KL}(k) = \left| \frac{\text{CH}(k) - \text{CH}(k-1)}{\text{CH}(k+1) - \text{CH}(k)} \right|$ 1. 对 $k = k_{\min}$ 到 $k_{\max}$ 算 CH index
2. 计算相邻 CH 的差分比
3. 选 $\text{KL}(k)$ 最大的 $k$
选 KL 最大的 $k$
Hartigan $\text{Hart}(k) = \left( \frac{\text{Tr}(W_k)}{\text{Tr}(W_{k+1})} - 1 \right)(n - k - 1)$ 1. 对 $k=1$ 到 $k_{\max}$ 算 Tr($W_k$)
2. 计算相邻 WSS 比的变换
3. 选 $\text{Hart}(k) < 10$ 的首个 $k$
选首次 < 10 的 $k$
McClain-Rao $\frac{\bar{d}{\text{within}}}{\bar{d}{\text{between}}}$ 1. 计算所有簇内点对距离的平均值 $\bar{d}{\text{within}}$
2. 计算所有簇间点对距离的平均值 $\bar{d}
{\text{between}}$
3. 取比值
越小
C-Index $\frac{S_{\text{within}} - \min(S_{\text{within}})}{\max(S_{\text{within}}) - \min(S_{\text{within}})}$ 1. $S_{\text{within}}$ = 所有簇内点对距离之和
2. $\min(S_{\text{within}})$ = 所有点对中取 $n_{\text{within}}$ 个最小距离的和
3. $\max$ 同理取最大距离和
越小 ($\leq 1$)
Trace W (肘部) $\text{Tr}(W_k) = \sum_{i=1}^k \sum_{x \in C_i} |x - \mu_i|^2$ 1. 对每个 $k$ 算 WSS
2. 画 $\text{Tr}(W_k) \sim k$ 曲线
3. 找”肘部”(拐点)
越小(但不是选最小的,选肘部)

三、Joint 指标(降维 + 聚类同步评价)

有些方法(如 Distributional Reduction、srGW 降维)同时做降维和聚类,评价时需要兼顾两方面。

3.1 原型质量指标

分布缩减(Distributional Reduction)产出的是低维原型点(prototypes)。评价这类方法:

  • Cluster Purity(基于原型分配):看每个原型映射到的原始数据点的类别纯度
  • Reconstruction Error:低维原型映射回高维空间的重建误差(与PCA的reconstruction类似,但用非线性的srGW重建)
  • Prototype Coverage:原始数据点离最近原型的平均距离(越小越充分的覆盖)

3.2 Mixed Metrics

  • NMI + Trustworthiness 联合曲线:以聚类质量(NMI)为横轴、降维质量(Trustworthiness)为纵轴,看方法是否能同时在两个指标上取得好成绩。Distributional Reduction 论文用这种思路。
  • Scatter Plot of DR + Color by Cluster:可视化上,好的结果应该同时呈现(1)清晰的分离簇(2)每个簇内的几何结构被合理保持

3.3 谱系指标

当聚类数 $K$ 与嵌入维度 $d$ 之间存在连续谱时(分布缩减的核心创新),需要考察:

  • Interpolation Trajectory:固定 $K$ 变化 $d$(或反之)时,NMI 和 Trustworthiness 如何连续变化
  • Pseudo-R²:每个数据点到原型之间关系的拟合优度

四、实战建议

场景 推荐指标组合
降维论文(标准) Trustworthiness + Continuity + MRRE + KNN-ACC + NMI on k-means
降维论文(快速) Trustworthiness(k=5,30,100) + 1-NN LOO
降维论文(有标签数据) KNN-ACC(1) + NMI(k-means) + Trustworthiness(三个维度)
降维论文(无标签数据) Trustworthiness + Continuity + Silhouette on embedding
聚类论文(有标签) ARI + NMI(并列,两个都要看)
聚类论文(无标签) Silhouette + DBI + Gap Statistic
同时做降维+聚类 ARI(k-means) + Trustworthiness + 联合散点图
评估不同降维方法的可视化质量 Trustworthiness + 目视检查 + 1-NN LOO
k-means变体 ARI + CH index(CH基于欧氏距离正好匹配k-means的前提)

常见坑: - ARI 在 $n$ 较小时方差很大,需要多次重复 - Silhouette 对非凸簇完全不work - Trustworthiness 只取一个 $k$ 会误导——必须画 $k$ 从1到 $n/2$ 的曲线 - 没有”最好的指标”,永远要配合可视化看


五、计算复杂度总表

下面的复杂度以 $n$ 为样本数、$D$ 为原始维度、$d$ 为降维后维度、$k$ 为近邻数或聚类数来标注。假设距离矩阵已预计算($O(n^2 D)$),除非特别说明。

5.1 降维指标复杂度

指标 时间复杂度 空间复杂度 关键操作 注意
Trustworthiness $(k)$ $O(n^2 \log n + n^2 k)$ $O(n^2)$ 全距离矩阵 + 排序 瓶颈在排序
Continuity $(k)$ $O(n^2 \log n + n^2 k)$ $O(n^2)$ 同上 同上
MRRE $(k)$ $O(n^2 \log n + n^2 k)$ $O(n^2)$ 同上 + 秩差 略慢于 T+C
NH $(k)$ $O(n^2 \log n)$ $O(n^2)$ 排序 + 求交 快于 T+C
AUC of NP $O(n^2 \log n)$ $O(n^2)$ NH 对所有 k 积分 快速
LCMC $O(n^2 \log n)$ $O(n^2)$ co-ranking 矩阵 等价于 T+C-1,$O(1)$ 额外
Triplet Accuracy $\boldsymbol{O(n^3 \log n)}$ ⚠️ $O(n^2)$ 全三元组排序比较 n > 1000 时不可行,一般用采样近似
C Measure $\boldsymbol{O(n^3)}$ ⚠️ $O(1)$ 三元组比较 同上,$\binom{n}{3} \approx n^3/6$
KL Divergence $O(n^2)$ $O(n^2)$ softmax + 求和 较快
Spearman $\rho$ $O(n^2 \log n)$ $O(n^2)$ 全秩排序 无需指定 k
Stress $O(n^2)$ $O(n^2)$ 简单代数 最快之一
Sammon Stress $O(n^2)$ $O(n^2)$ 加权 Stress 比 Stress 多一步除法
Residual Var $O(n^2)$ $O(n^2)$ Pearson 相关 快速
Procrustes $O(D d^2 + d^3)$ $O(Dd)$ SVD 维度无关 $n$
KNN-ACC $O(n^2 \log n + n k)$ $O(n^2)$ 距离排序 + LOO 投票 1-NN 最快
K-means on embedding $O(n k d \cdot \text{iter})$ $O(n d + k d)$ Lloyd 迭代 比 true k 慢,iter ~ 10-100

5.2 聚类外部指标复杂度

指标 时间复杂度 空间复杂度 关键操作 注意
ARI $O(n k + k^2)$ $O(k^2)$ 列联表 极快
NMI $O(n k + k^2)$ $O(k^2)$ 熵/互信息 极快
AMI $O(n k + k^2)$ $O(k^2)$ NMI + 期望估计 比 NMI 多算一项
Homogeneity/Completeness $O(n k)$ $O(k^2)$ 条件熵 极快
FMI $O(n^2)$ $O(n^2)$ 全点对计数 n 大时慢,可采样
Purity $O(n k)$ $O(k^2)$ 列联表 max 极快
ACC $O(k^3 + n)$ $O(k^2)$ Hungarian 匹配 $k < 50$ 时极快
RI $O(n^2)$ $O(n^2)$ 全点对 n 大时慢
VI $O(n k + k^2)$ $O(k^2)$ 熵 + 互信息 极快
Cophenetic $O(n^2)$ $O(n^2)$ 树状图距离 + 相关 仅层次聚类

5.3 聚类内部指标复杂度

指标 时间复杂度 空间复杂度 关键操作 注意
Silhouette $\boldsymbol{O(n^2)}$ ⚠️ $O(n^2)$ 全距离 + 跨簇平均 n=10⁵ 时不可行
DBI $O(n k d + k^2)$ $O(k^2)$ 簇中心 + 半径
CH $O(n d k)$ $O(d^2)$ 散度矩阵迹
Dunn $\boldsymbol{O(n^2)}$ ⚠️ $O(n^2)$ 簇间/簇内距离极值 对噪声敏感
Gap Statistic $\boldsymbol{O(B \cdot n \cdot k \cdot d)}$ ⚠️ $O(n^2)$ B 次 bootstrap B=10~50,每次跑 k-means
Ball-Hall $O(n d k)$ $O(d)$ WSS 累加
Hubert’s Gamma $\boldsymbol{O(n^2)}$ ⚠️ $O(n^2)$ 全点对相关 n 大时慢
Point Biserial $\boldsymbol{O(n^2)}$ $O(n^2)$ 同上变体 同上
BIC / AIC $O(n d k + k d^2)$ $O(d^2)$ MLE + 似然 GMM 时更慢
Stability $\boldsymbol{O(B \cdot n \cdot k \cdot d \cdot \text{iter})}$ ⚠️ $O(n k)$ 重采样 + 再聚类 B=20~100,昂贵
Krzanowski-Lai $O(n d k)$ $O(d^2)$ 基于 CH 的比值 需算多个 k 的 CH
Hartigan $O(n d k)$ $O(d)$ WSS 比值 需算多个 k 的 WSS
McClain-Rao $\boldsymbol{O(n^2)}$ $O(n^2)$ 全距离平均 同 Silhouette
C-Index $\boldsymbol{O(n^2)}$ $O(n^2)$ 极值搜索 同 Silhouette
Trace W (肘部) $O(n d k)$ $O(d)$ WSS 累加 极快

5.4 复杂度速记口诀

降维:O(n² log n) 是日常,O(n³) 别碰(Triplet/C) 聚类外部:O(nk) 到 O(k³),列联表就够 聚类内部:快的 O(ndk),慢的 O(n²) 最贵操作排序:距离矩阵计算 > 全排序 > Lloyd > 列联表

速度优先级排序(从快到慢): 1. 超快 ($\ll 1s$ for n=10⁴):ARI, NMI, Purity, CH, BIC — 适合大规模筛选 2. ($\sim 1s$):Trustworthiness, KNN-ACC, DBI — 标准配置 3. ($\sim 10s$):Silhouette, Gap Statistic — n 到万级 4. ($\sim \text{min}$):Stability (bootstrap), Triplet Accuracy — 仅验证实验

实战经验: 对于 n=10⁴、D=100 的数据集,算全距离矩阵约 0.5s,Trustworthiness(十个 k) 约 2s,Silhouette 约 1s,Stability(B=20) 约 30s。时间大头一般在多次跑 k-means(对每个 k 值),而不是算指标本身。