scipy.special.log_expit#

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

logistic sigmoid 函數的對數。

logistic sigmoid 函數的 SciPy 實作是 scipy.special.expit,因此此函數被稱為 log_expit

此函數在數學上等同於 log(expit(x)),但其公式旨在避免對於大(正或負)數值的輸入產生精確度損失。

參數:
xarray_like

要逐元素套用 log_expit 的值。

outndarray, optional

函數結果的可選輸出陣列

返回:
out純量或 ndarray

計算值,與 x 形狀相同的 ndarray。

參見

expit

註解

作為一個 ufunc,log_expit 接受許多可選的關鍵字參數。 更多資訊請參閱 ufuncs

在 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。