log_loss#

sklearn.metrics.log_loss(y_true, y_pred, *, normalize=True, sample_weight=None, labels=None)[Quelle]#

Log-Loss, auch bekannt als logistischer Verlust oder Kreuzentropieverlust.

Dies ist die Verlustfunktion, die in der (multinomialen) logistischen Regression und deren Erweiterungen wie neuronalen Netzen verwendet wird. Sie ist definiert als die negative Log-Likelihood eines logistischen Modells, das die Wahrscheinlichkeiten y_pred für seine Trainingsdaten y_true zurückgibt. Der Log-Verlust ist nur für zwei oder mehr Klassen definiert. Für eine einzelne Stichprobe mit der wahren Klasse \(y \in \{0,1\}\) und einer Wahrscheinlichkeitsschätzung \(p = \operatorname{Pr}(y = 1)\) ist der Log-Verlust

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

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
y_truearray-ähnlich oder Label-Indikatormatrix

Tatsächliche (korrekte) Labels für n_samples Stichproben.

y_predarray-ähnlich von float, Form = (n_samples, n_classes) oder (n_samples,)

Vorhergesagte Wahrscheinlichkeiten, wie sie von der predict_proba Methode eines Klassifikators zurückgegeben werden. Wenn y_pred.shape = (n_samples,), werden die angegebenen Wahrscheinlichkeiten für die positive Klasse angenommen. Die Labels in y_pred werden alphabetisch geordnet angenommen, wie es von LabelBinarizer gehandhabt wird.

y_pred Werte werden auf [eps, 1-eps] gekappt, wobei eps die Maschinengenauigkeit für den Datentyp von y_pred ist.

normalizebool, default=True

Wenn wahr, wird der mittlere Verlust pro Stichprobe zurückgegeben. Andernfalls wird die Summe der per-Stichproben-Verluste zurückgegeben.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

labelsarray-artig, Standardwert=None

Wenn nicht angegeben, werden die Labels aus y_true abgeleitet. Wenn labels None ist und y_pred die Form (n_samples,) hat, werden die Labels als binär angenommen und aus y_true abgeleitet.

Hinzugefügt in Version 0.18.

Gibt zurück:
lossfloat

Log-Loss, auch bekannt als logistischer Verlust oder Kreuzentropieverlust.

Anmerkungen

Der verwendete Logarithmus ist der natürliche Logarithmus (Basis e).

Referenzen

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

Beispiele

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