若某个算法得到分类为:A = [1 1 1 1, 2 2 2 2 2 , 3 3 3 3 3, 4 4 4],而真实的分类结果为 B = [1 2 4 1, 1 2 3 2 2, 1 2 4 3 3, 4 4 2],求NMI值;
时间: 2024-05-20 17:11:11 浏览: 35
关于不定方程 x3 +1 =183y2 (2011年)
NMI(Normalized Mutual Information)是一种常用的聚类算法评估指标,用于评估聚类结果与真实分类结果的相似程度。
首先,我们需要计算互信息(Mutual Information):
$$
MI(A,B) = \sum_{i=1}^{k}\sum_{j=1}^{l} \frac{N_{ij}}{N} \log{\frac{N_{ij}N}{N_iN_j}}
$$
其中,$k$ 表示 A 的分类数,$l$ 表示 B 的分类数,$N_{ij}$ 表示 A 中分类为 $i$,B 中分类为 $j$ 的样本数,$N_i$ 表示 A 中分类为 $i$ 的样本数,$N_j$ 表示 B 中分类为 $j$ 的样本数,$N$ 表示总样本数。
将上述数据代入计算得到:
$$
MI(A,B) = \frac{1}{20}[(2/20)\log{\frac{(2/20)20}{(4/20)(4/20)}}+(2/20)\log{\frac{(2/20)20}{(5/20)(5/20)}}+(1/20)\log{\frac{(1/20)20}{(4/20)(1/20)}}\\+(2/20)\log{\frac{(2/20)20}{(5/20)(2/20)}}+(1/20)\log{\frac{(1/20)20}{(4/20)(1/20)}}+(3/20)\log{\frac{(3/20)20}{(5/20)(3/20)}}\\+(2/20)\log{\frac{(2/20)20}{(4/20)(2/20)}}+(1/20)\log{\frac{(1/20)20}{(5/20)(1/20)}}+(1/20)\log{\frac{(1/20)20}{(4/20)(1/20)}}+(1/20)\log{\frac{(1/20)20}{(3/20)(1/20)}}]\\
= 0.249
$$
然后,我们需要计算 A 和 B 的熵:
$$
H(A) = -\sum_{i=1}^{k}\frac{N_i}{N}\log{\frac{N_i}{N}}
$$
$$
H(B) = -\sum_{j=1}^{l}\frac{N_j}{N}\log{\frac{N_j}{N}}
$$
将上述数据代入计算得到:
$$
H(A) = -[(8/20)\log{(8/20)}+(5/20)\log{(5/20)}+(5/20)\log{(5/20)}+(2/20)\log{(2/20)}]\\
= 1.921
$$
$$
H(B) = -[(4/20)\log{(4/20)}+(5/20)\log{(5/20)}+(5/20)\log{(5/20)}+(6/20)\log{(6/20)}]\\
= 1.874
$$
最后,我们可以计算 NMI:
$$
NMI(A,B) = \frac{MI(A,B)}{\sqrt{H(A)H(B)}} = \frac{0.249}{\sqrt{1.921 \times 1.874}} = 0.283
$$
因此,该算法得到的聚类结果与真实分类结果的相似程度为 0.283。
阅读全文