sklearn.metrics.log_loss

sklearn.metrics.log_loss()

Pérdida logarítmica, también conocida como pérdida logística o pérdida de entropía cruzada (cross-entropy).

Esta es la función de pérdida utilizada en la regresión logística (multinomial) y en sus extensiones, como las redes neuronales, definida como el logaritmo de la verosimilitud negativa de un modelo logístico que devuelve las probabilidades y_pred para sus datos de entrenamiento y_true. La pérdida logarítmica sólo se define para dos o más etiquetas. Para una sola muestra con la etiqueta verdadera \(y \in \{0,1\}\) y una estimación de probabilidad \(p = \operatorname{Pr}(y = 1)\), la pérdida logarítmica es:

\[L_{\log}(y, p) = -(y \log (p) + (1 - y) \log (1 - p))\]

Leer más en el Manual de Usuario.

Parámetros
y_truearray-like o matriz indicadora de etiqueta

Etiquetas reales (correctas) para n_samples muestras.

y_predarray-like de float, forma = (n_samples, n_classes) o (n_samples,)

Probabilidades predichas, tal como las devuelve el método predict_proba de un clasificador. Si y_pred.shape = (n_samples,) se supone que las probabilidades proporcionadas son las de la clase positiva. Se asume que las etiquetas de y_pred son ordenadas alfabéticamente, como hace preprocessing.LabelBinarizer.

epsfloat, default=1e-15

La pérdida logarítmica no está definida para p=0 o p=1, por lo que las probabilidades se recortan a max(eps, min(1 - eps, p)).

normalizebool, default=True

Si es true, devuelve la pérdida media por muestra. De lo contrario, devuelve la suma de las pérdidas por muestra.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones de muestras.

labelsarray-like, default=None

Si no se proporcionan, las etiquetas se inferirán de y_true. Si labels es None y y_pred tiene forma (n_samples,) se asume que las etiquetas son binarias y se infieren de y_true.

Nuevo en la versión 0.18.

Devuelve
lossfloat

Notas

El logaritmo utilizado es el logaritmo natural (base-e).

Referencias

C.M. Bishop (2006). Pattern Recognition and Machine Learning. Springer, p. 209.

Ejemplos

>>> from sklearn.metrics import log_loss
>>> log_loss(["spam", "ham", "ham", "spam"],
...          [[.1, .9], [.9, .1], [.8, .2], [.35, .65]])
0.21616...

Ejemplos utilizando sklearn.metrics.log_loss