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 entrenamientoy_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 dey_pred
son ordenadas alfabéticamente, como hacepreprocessing.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
esNone
yy_pred
tiene forma (n_samples,) se asume que las etiquetas son binarias y se infieren dey_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...