def calculate_mutualinformation(x, y, bins):
pxy, _, _ = np.histogram2d(x, y, bins)
px, _, = np.histogram(x, bins)
py, _, = np.histogram(y, bins)
pxy = pxy/np.sum(pxy)
px = px/np.sum(px)
py = py/np.sum(py)
pxy = pxy[np.nonzero(pxy)]
px = px[np.nonzero(px)]
py = py[np.nonzero(py)]
hxy = -np.sum(pxy*np.log2(pxy))
hx = -np.sum(px*np.log2(px))
hy = -np.sum(py*np.log2(py))
MI = hx+hy-hxy
return MI
评论列表
文章目录