Арифметическая и геометрическая нормализованная взаимная информация
В чем разница между арифметической и нормализованной геометрической взаимной информацией, у меня есть:
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 ответ
Речь идет о том, как рассчитать знаменатель формулировки. Для нормализованной взаимной информации и скорректированной взаимной информации нормализующее значение обычно является некоторым обобщенным средним значением энтропий каждой кластеризации. Существуют различные обобщенные средства, и не существует твердых правил для предпочтения одного над другими. Решение в значительной степени основано на поле; например, при обнаружении сообщества среднее арифметическое является наиболее распространенным. Каждый метод нормализации обеспечивает "качественно сходное поведение". В нашей реализации это контролируется параметром average_method. это научная информация