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