scipy.special.log_expit#

scipy.special.log_expit(x, out=None) = <ufunc 'log_expit'>#

逻辑 sigmoid 函数的对数。

逻辑 sigmoid 函数的 SciPy 实现是 scipy.special.expit,因此此函数称作 log_expit

此函数在数学上等效于 log(expit(x)),但其公式避免了幅度较大的(正数或负数)输入产生精度损失。

参数:
xarray_like

要逐元素应用 log_expit 的值。

outndarray,可选

可选项,函数结果的输出数组

返回:
out标量或 ndarray

已计算的值,与 x 相同形状的 ndarray。

另请参阅

expit

注解

作为 ufunc,log_expit 采用多个可选关键字参数。有关更多信息,请参阅 ufunc

在版本 1.8.0 中添加。

实例

>>> import numpy as np
>>> from scipy.special import log_expit, expit
>>> log_expit([-3.0, 0.25, 2.5, 5.0])
array([-3.04858735, -0.57593942, -0.07888973, -0.00671535])

较大的负值

>>> log_expit([-100, -500, -1000])
array([ -100.,  -500., -1000.])

请注意expit(-1000)返回 0,因此朴素实现log(expit(-1000))返回-inf

较大的正值

>>> log_expit([29, 120, 400])
array([-2.54366565e-013, -7.66764807e-053, -1.91516960e-174])

将其与朴素实现相比较

>>> np.log(expit([29, 120, 400]))
array([-2.54463117e-13,  0.00000000e+00,  0.00000000e+00])

第一个值仅精确到 3 位数字,较大的输入会丢失所有精度并返回 0。