Normalized Mutual Information(NMI, 歸一化互資訊)

亦可九天揽月發表於2024-10-30

Normalized Mutual Information(NMI, 歸一化互資訊)

  • 值域是 \([0,1]\),值越高表示兩個聚類結果越相似。歸一化是指將兩個聚類結果的相似性值定量\(0\sim 1\) 之間。

\[\text{NMI}=\frac{2\sum_i\sum_jn_{ij}ln\frac{n_{ij}N}{n_in_j}}{-\sum_in_iln\frac{n_i}{N}-\sum_jn_jln\frac{n_j}{N}} \]

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

  • 其中Y代表資料真實的類別;C表示聚類的結果。
  • \(H(\cdot)\) 表示資訊熵,\(H(X)=-\sum_{i=1}^N p(i)\log\ p(i)\),此處的 \(log\) 以2為底。
  • \(I(Y;C)\) 代表互資訊, \(I(Y;C)=H(Y)-H(Y|C)\) ,互資訊是資訊理論裡的一種資訊度量,可以看成是一個隨機變數中包含的關於另一個隨機變數的資訊量。

例子

假定共有20個樣本,真實類簇為3個,而模型學習得到2個類簇,如下:

  1. 計算 \(Y\) 的資訊熵 \(H(Y)\)

    H(Y) 表示資料真實標籤的交叉熵,它是一個固定的值。可以在聚類之前計算出。

    \[\begin{split} H(Y)&=-\sum_{y=1}^3 P(Y=y)logP(Y=y)\\ &=-(\frac{1}{4}log(\frac{1}{4})+\frac{1}{4}log(\frac{1}{4})+\frac{1}{2}log(\frac{1}{2}))\\ &=1.5\ bit \end{split} \]

  2. 計算 \(C\) 的資訊熵
    𝐻(𝐶)表示資料聚類後標籤的交叉熵,每得到一個聚類結果都需要計算一下。

    \[\begin{split} H(C)&=-\sum_{c=1}^3 P(C=c)logP(C=c)\\ &=-(\frac{1}{2}log(\frac{1}{2})+\frac{1}{2}log(\frac{1}{2}))\\ &=1\ bit \end{split} \]

  3. 計算 \(Y\)\(C\) 的互資訊

    \[\begin{split} H(Y|C)&=H(Y|C=1)+H(Y|C=2)\\ &=-P(C=1)\sum_{y=1}^3 P(Y=y|C=1)logP(Y=y|C=1)\\ &-P(C=2)\sum_{y=1}^3 P(Y=y|C=2)logP(Y=y|C=2)\\ &=-\frac{1}{2}(\frac{3}{10}log(\frac{3}{10})+\frac{3}{10}log(\frac{3}{10})+\frac{4}{10}log(\frac{4}{10})\\ & +\frac{2}{10}log(\frac{2}{10})+\frac{7}{10}log(\frac{7}{10})+\frac{1}{10}log(\frac{1}{10}))\\ &=1.3639\ bit \end{split} \]

    \[\begin{split} I(Y;C)&=H(Y)-H(Y|C)\\ &=1.5-1.3639\\ &=0.1361\ bit \end{split} \]

  4. 計算 \(Y\)\(C\) 的歸一化互資訊

\[\begin{split} \text{NMI(Y,C)}&=\frac{2\times I(Y;C)}{H(Y)+H(C)}\\ &=\frac{2\times 0.1361}{1.5+1}\\ &=0.1089 \end{split} \]

相關文章