ACC(Accuracy,准确率)和NMI(Normalized Mutual Information,归一化互信息)

ACC(Accuracy,准确率)和NMI(Normalized Mutual Information,标准化互信息)是机器学习中常用的两种评估指标,主要用于聚类任务的性能评估。


1. ACC(准确率)

含义
ACC是衡量聚类结果与真实标签匹配程度的指标。它计算的是正确分配的样本占总样本的比例。需要注意的是,在聚类任务中,簇的标签(如“簇1”、“簇2”)通常是无序的,因此需要通过某种方法(如匈牙利算法)将预测的簇标签与真实的类别标签进行最优匹配,然后再计算准确率。

计算公式
A C C = 正确匹配的样本数 总样本数 ACC = \frac{\text{正确匹配的样本数}}{\text{总样本数}} ACC=总样本数正确匹配的样本数

计算步骤

  1. 将预测的簇标签与真实标签进行最优匹配(通常用匈牙利算法)。
  2. 计算匹配后正确分类的样本数。
  3. 除以总样本数。

2. NMI(标准化互信息)

含义
NMI是基于信息论的指标,用于衡量两个划分(预测簇和真实类别)之间的相似性。它考虑了聚类结果与真实标签之间的互信息,并通过标准化消除簇数量或样本分布的影响,取值范围在[0, 1]之间。NMI越高,说明聚类结果与真实标签越一致。

计算公式
N M I ( U , V ) = I ( U ; V ) H ( U ) ⋅ H ( V ) NMI(U, V) = \frac{I(U; V)}{\sqrt{H(U) \cdot H(V)}} NMI(U,V)=H(U)H(V) I(U;V)

  • I ( U ; V ) I(U; V) I(U;V):预测划分 U U U 和真实划分 V V V 之间的互信息。
  • H ( U ) H(U) H(U) H ( V ) H(V) H(V):分别是预测划分和真实划分的熵。
  • 互信息 I ( U ; V ) = H ( U ) + H ( V ) − H ( U , V ) I(U; V) = H(U) + H(V) - H(U, V) I(U;V)=H(U)+H(V)H(U,V)

示例计算

假设我们有6个样本,真实标签和预测簇如下:

样本真实标签 (V)预测簇 (U)
样本1A1
样本2A1
样本3A2
样本4B2
样本5B2
样本6B3
ACC计算
  1. 最优匹配

    • 真实标签:A (样本1, 2, 3), B (样本4, 5, 6)
    • 预测簇:簇1 (样本1, 2), 簇2 (样本3, 4, 5), 簇3 (样本6)
    • 通过匈牙利算法匹配:
      • 簇1 → A(样本1, 2正确,样本3应为A但分到簇2)
      • 簇2 → B(样本4, 5正确,样本3应为A)
      • 簇3 → B(样本6正确)
    • 假设匹配为:簇1 → A,簇2 → B,簇3 → B。
  2. 正确匹配的样本

    • 样本1 (A → 1, 正确)
    • 样本2 (A → 1, 正确)
    • 样本3 (A → 2, 错误)
    • 样本4 (B → 2, 正确)
    • 样本5 (B → 2, 正确)
    • 样本6 (B → 3, 正确)
    • 正确数 = 5,错误数 = 1。
  3. ACC
    A C C = 5 6 ≈ 0.8333 ( 83.33 % ) ACC = \frac{5}{6} \approx 0.8333 \quad (83.33\%) ACC=650.8333(83.33%)


NMI计算
  1. 计算熵 H ( U ) H(U) H(U) H ( V ) H(V) H(V)

    • 真实标签 V V V:A (3个), B (3个)
      H ( V ) = − ( 3 6 log ⁡ 2 3 6 + 3 6 log ⁡ 2 3 6 ) = − ( 0.5 log ⁡ 2 0.5 + 0.5 log ⁡ 2 0.5 ) = 1 H(V) = -\left(\frac{3}{6} \log_2 \frac{3}{6} + \frac{3}{6} \log_2 \frac{3}{6}\right) = - (0.5 \log_2 0.5 + 0.5 \log_2 0.5) = 1 H(V)=(63log263+63log263)=(0.5log20.5+0.5log20.5)=1
    • 预测簇 U U U:簇1 (2个), 簇2 (3个), 簇3 (1个)
      H ( U ) = − ( 2 6 log ⁡ 2 2 6 + 3 6 log ⁡ 2 3 6 + 1 6 log ⁡ 2 1 6 ) H(U) = -\left(\frac{2}{6} \log_2 \frac{2}{6} + \frac{3}{6} \log_2 \frac{3}{6} + \frac{1}{6} \log_2 \frac{1}{6}\right) H(U)=(62log262+63log263+61log261)
      H ( U ) = − ( 0.333 log ⁡ 2 0.333 + 0.5 log ⁡ 2 0.5 + 0.167 log ⁡ 2 0.167 ) ≈ 1.459 H(U) = -(0.333 \log_2 0.333 + 0.5 \log_2 0.5 + 0.167 \log_2 0.167) \approx 1.459 H(U)=(0.333log20.333+0.5log20.5+0.167log20.167)1.459
  2. 计算联合熵 H ( U , V ) H(U, V) H(U,V)

    • 联合分布:
      • A & 簇1: 2个
      • A & 簇2: 1个
      • B & 簇2: 2个
      • B & 簇3: 1个
    • H ( U , V ) = − ∑ p ( u , v ) log ⁡ 2 p ( u , v ) H(U, V) = -\sum p(u, v) \log_2 p(u, v) H(U,V)=p(u,v)log2p(u,v)
      H ( U , V ) = − ( 2 6 log ⁡ 2 2 6 + 1 6 log ⁡ 2 1 6 + 2 6 log ⁡ 2 2 6 + 1 6 log ⁡ 2 1 6 ) ≈ 1.918 H(U, V) = -\left(\frac{2}{6} \log_2 \frac{2}{6} + \frac{1}{6} \log_2 \frac{1}{6} + \frac{2}{6} \log_2 \frac{2}{6} + \frac{1}{6} \log_2 \frac{1}{6}\right) \approx 1.918 H(U,V)=(62log262+61log261+62log262+61log261)1.918
  3. 计算互信息 I ( U ; V ) I(U; V) I(U;V)
    I ( U ; V ) = H ( U ) + H ( V ) − H ( U , V ) = 1.459 + 1 − 1.918 ≈ 0.541 I(U; V) = H(U) + H(V) - H(U, V) = 1.459 + 1 - 1.918 \approx 0.541 I(U;V)=H(U)+H(V)H(U,V)=1.459+11.9180.541

  4. 计算NMI
    N M I = I ( U ; V ) H ( U ) ⋅ H ( V ) = 0.541 1.459 ⋅ 1 ≈ 0.448 NMI = \frac{I(U; V)}{\sqrt{H(U) \cdot H(V)}} = \frac{0.541}{\sqrt{1.459 \cdot 1}} \approx 0.448 NMI=H(U)H(V) I(U;V)=1.4591 0.5410.448


总结

  • ACC = 0.8333:说明83.33%的样本被正确分配。
  • NMI = 0.448:说明预测簇和真实标签之间有一定的相似性,但不是非常高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值