图谱连接

草稿

Fowlkes-Mallows 指数

用成对精确率和成对召回率的几何平均来评价聚类。

concept intermediate machine-learningmetricsclustering

问题入口:关注“被放在一起”的样本对

Rand 指数包含 TN:参考标签不同、预测簇也不同的样本对。

有时我们更关心聚类的正向决定:“这两个样本应该放在一起。”

Fowlkes-Mallows 指数(FMI)只使用 TPFPFN

成对正例平衡FMI 不使用真负例,而是在成对精确率和成对召回率之间取平衡。
Pair precision0.75

TP / (TP + FP)

Pair recall0.429

TP / (TP + FN)

FMI0.567

TP / sqrt((TP + FP)(TP + FN))

TN20

FMI 不使用

第一个朴素想法:只看成对精确率

成对精确率(pair precision)是:

TPTP+FP\frac{TP}{TP+FP}

它衡量“被放在同一簇的样本对有多可信”。但它不关心那些本该同标签、却被拆开的样本对。

核心发明:平衡成对精确率和成对召回率

成对召回率(pair recall)是:

TPTP+FN\frac{TP}{TP+FN}

FMI 用几何平均合并二者:

FMI=TPTP+FPTPTP+FNFMI=\sqrt{\frac{TP}{TP+FP}\cdot\frac{TP}{TP+FN}}

等价的计数形式是:

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

固定样本中:

FMI=3(3+1)(3+4)=3280.567FMI=\frac{3}{\sqrt{(3+1)(3+4)}}=\frac{3}{\sqrt{28}}\approx 0.567

交互实验台

聚类指标预设实验台

说明: 一个混合簇和两个被拆开的真实类别会让纯度看起来高,但成对指标会暴露损失。

纯度0.875

7/8

Rand 指数0.821

23/28

调整 Rand 指数0.444

S=3, E=1

Fowlkes-Mallows 指数0.567

pair P=0.75, pair R=0.429

TP3
FP1
FN4
TN20

为什么没有 TN

TN 表示两个样本在参考标签和聚类中都被分开。它对 RI 是一种一致,但不能说明“被放在一起”的预测簇是否有用。

因此 FMI 聚焦在同簇样本对这个正向决定上。

Rand 成对计数RI 同时计入同-同和异-异两类一致。
TP3

两边都放在一起

FP1

错误合并

FN4

错误拆开

TN20

两边都分开

RI23/28 = 0.821

边界情况

如果 TP + FP = 0,说明没有任何预测同簇样本对,成对精确率不可用。

如果 TP + FN = 0,说明参考答案中没有同标签样本对,成对召回率不可用。

这两种情况下,FMI 应渲染为 不可用,不要显示 NaN

实现草图

function fowlkesMallows(tp: number, fp: number, fn: number) {
  const denominator = Math.sqrt((tp + fp) * (tp + fn));
  return denominator === 0 ? null : tp / denominator;
}

复杂度

已知成对计数后,FMI 是 O(1)。直接构建成对计数是 O(n^2),也可以从列联表推导。

常见误区

  • FMI 不是分类任务里的 F1,虽然二者都在平衡两个正向指标。
  • FMI 不像 ARI 那样调整机会一致性。
  • 把所有样本合并到一个簇会有高成对召回率,但成对精确率会变弱。
预设对比过度拆分和过度合并会让四个指标产生不同反应。
固定样本

Purity: 0.875

RI: 0.821

ARI: 0.444

FMI: 0.567

完全匹配

Purity: 1

RI: 1

ARI: 1

FMI: 1

单点过度拆分

Purity: 1

RI: 0.75

ARI: 0

FMI: 不可用

全部合并

Purity: 0.375

RI: 0.25

ARI: 0

FMI: 0.5

练习

  1. 为什么 FMI 不使用 TN
  2. 单点过度拆分预设下,FMI 会怎样?
  3. 哪种错误会伤害成对精确率:FP 还是 FN

图谱连接 : Fowlkes-Mallows 指数