scipy.special.kl_div#
- scipy.special.kl_div(x, y, out=None) = <ufunc 'kl_div'>#
用于计算 Kullback-Leibler 离散度的逐元素函数。
\[\begin{split}\mathrm{kl\_div}(x, y) = \begin{cases} x \log(x / y) - x + y & x > 0, y > 0 \\ y & x = 0, y \ge 0 \\ \infty & \text{otherwise} \end{cases}\end{split}\]- 参数:
- x, yarray_like
实数参数
- outndarray,可选
函数结果的可选输出数组
- 返回:
- 标量或 ndarray
Kullback-Leibler 离散度值。
另请参见
注释
在 0.15.0 版本中添加。
该函数为非负值,并且在 x 和 y 中是联合凸的。
该函数源自凸编程;有关详细信息,请参阅 [1]。这就是为什么函数包含其他 \(-x + y\) 项,而不是库尔巴克-莱布勒散度的预期项。有关不含其他项的函数版本,请参阅
rel_entr
。参考
[1]Boyd, Stephen 和 Lieven Vandenberghe。凸优化。剑桥大学出版社,2004。 DOI:https://doi.org/10.1017/CBO9780511804441