Условная Взаимная информация - PullRequest
1 голос
/ 19 марта 2019

The theoretical approach,i want to convert this into a python program[![][1]] 2 Пытался проверить этот пакет для вычисления условной взаимной информации из набора данных. Имя пакета - "dit"

Myкод:

from __future__ import division
import numpy as np
import dit
from dit import Distribution as D
from dit.multivariate import coinformation as I
from dit.example_dists import Xor

d=Xor()
d.set_rv_names(['X','Y','Z'])
X=111010
Y=101101
Z=001011

a=dit.multivariate.coinformation(d,'XY','Z')
print(a)

При запуске этой программы я всегда получаю результат "1,0".
Результат имеет отрицательное или положительное значение, например, "-0,0023" или "0,120"

По сути, я хочу сделать это https://stats.stackexchange.com/questions/147401/estimating-mutual-information-using-r на Python.Небольшая помощь будет высоко ценится

1 Ответ

1 голос
/ 19 марта 2019

Скажите, если это решение для вас: set_rv_names до d:

d=Xor()

## ADD THIS LINE OF CODE BELOW
d.set_rv_names(['X', 'Y', 'Z'])

X=0.052290766
Y=0.004951425
Z=0.000246642

a=dit.multivariate.coinformation(d,'XY','Z')
print(a)
...