scipy.special.log_expit#

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

Logarithmus der logistischen Sigmoidfunktion.

Die SciPy-Implementierung der logistischen Sigmoidfunktion ist scipy.special.expit, daher wird diese Funktion log_expit genannt.

Die Funktion ist mathematisch äquivalent zu log(expit(x)), ist jedoch so formuliert, dass sie für Eingaben mit großer (positiver oder negativer) Amplitude Präzisionsverluste vermeidet.

Parameter:
xarray_like

Die Werte, auf die log_expit elementweise angewendet werden soll.

outndarray, optional

Optionales Ausgabe-Array für die Funktionsergebnisse

Rückgabe:
outSkalar oder ndarray

Die berechneten Werte, ein ndarray gleicher Form wie x.

Siehe auch

expit

Hinweise

Als ufunc nimmt log_expit eine Reihe optionaler Schlüsselwortargumente entgegen. Weitere Informationen finden Sie unter ufuncs

Hinzugefügt in Version 1.8.0.

Beispiele

>>> 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])

Große negative Werte

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

Beachten Sie, dass expit(-1000) 0 zurückgibt, sodass die naive Implementierung log(expit(-1000)) -inf zurückgibt.

Große positive Werte

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

Vergleichen Sie das mit der naiven Implementierung

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

Der erste Wert ist nur auf 3 Ziffern genau, und die größeren Eingaben verlieren jegliche Präzision und geben 0 zurück.