Я пытаюсь вычислить взаимную информацию между двумя имеющимися у меня непрерывными переменными, поэтому после объединения с использованием функции гистограммы я применяю встроенную функцию metrics.mutual_info_score для вычисления MI. Однако я всегда получаю одно и то же значение для MI, даже для разных наборов переменных. Кто-нибудь знает, в чем может быть проблема? Это функция, которую я написал
def HIST_MI_2_var(a, b):
fig = plt.figure(figsize=(10,14))
ax1 = plt.subplot(311)
ax2 = plt.subplot(312)
hist_a = ax1.hist(a, density=True, bins=30, color = 'orange') # `density=False` would make counts
hist_b = ax2.hist(b, density=True, bins=30, color = 'blue') # `density=False` would make counts
MI_a_b = metrics.mutual_info_score(hist_a[1], hist_b[1])
return MI_a_b
И затем я использую ее для двух массивов rand, как показано ниже, получая одно и то же значение каждый раз, когда я запускаю ее:
a = np.random.rand(10)
b = np.random.rand(10)
HIST_MI_2_var(a, b)