看到 scipy.stats
中的连续分布使用 scipy.integrate.quad 计算 .entropy
,它解决了一个单变量积分,下面的函数或类似的函数如何用于计算互信息使用 scipy.integrate.dblquad(双积分)的 2 个连续分布?换句话说,在一个工作示例中,它如何与 scipy.stats
中的连续分布兼容?
import numpy as np
from scipy.integrate import quad, dblquad
def mutual_information(self):
def mi_integrand(x, y):
return np.exp(self.logpdf_xy(x,y)) * \
(self.logpdf_xy(x,y) - self.logpdf_x(x) - self.logpdf_y(y))
return dblquad(
lambda y, x: mi_integrand(x,y), self.D[0], self.D[1],
self._lower_y, self._upper_y)
Source 的代码
不确定子函数 mi_integrand
中写的是什么公式或运算符 * \
的作用。看起来并不熟悉。