算术和几何归一化互信息

时间:2019-07-14 06:39:36

标签: scikit-learn cluster-computing nmi

算术和几何归一化互信息有什么区别, 我有:

    In [4]: real
    Out[4]:
    array([0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 1., 1., 0., 0., 1., 0., 1., 0., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

    In [6]: test
    Out[6]:
    array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

现在我要计算归一化的互信息: 但它表现得有些奇怪

    In [13]: normalized_mutual_info_score(real.astype(int),test.astype(int),average_method='arithmetic')
    Out[13]: 6.422893887289432e-16

    In [14]: normalized_mutual_info_score(real.astype(int),test.astype(int),average_method='geometric')
    Out[14]: 1.0

为什么要问的主要问题?

1 个答案:

答案 0 :(得分:0)

关于如何计算配方的分母。对于归一化的互信息和调整后的互信息,归一化值通常是每个聚类的熵的某个广义均值。存在各种广义的手段,并且不存在确定一种偏于另一种的坚定规则。该决定在很大程度上是逐个领域进行的;例如,在社区检测中,算术平均值最为常见。每种归一化方法都提供“定性相似的行为”。在我们的实现中,这是由average_method参数控制的。 这是scikit的学习信息