scipy.special.log_expit#

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

逻辑S型函数的对数。

SciPy 实现的逻辑 sigmoid 函数是 scipy.special.expit,因此这个函数被称为 log_expit

该函数在数学上等价于 log(expit(x)),但为了防止输入值在大幅度(正或负)时精度丢失,采用了不同的表达方式。

参数:
xarray_like

要应用 log_expit 的元素值。

ndarray,可选

函数结果的可选输出数组

返回:
标量或ndarray

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

参见

expit

注释

作为一个ufunc,log_expit 接受多个可选的关键字参数。更多信息请参见 ufuncs

Added in version 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。