Взаимная информация python возвращает то же значение - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь вычислить взаимную информацию между двумя имеющимися у меня непрерывными переменными, поэтому после объединения с использованием функции гистограммы я применяю встроенную функцию 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)
...