sklearn.metrics.log_loss

sklearn.metrics.log_loss(y_true, y_pred, *, eps=1e-15, normalize=True, sample_weight=None, labels=None)

源码

对数损失,aka逻辑损失或交叉熵损失。

这是(多项式)逻辑回归及其扩展(例如神经网络)中使用的损失函数,定义为逻辑模型的负对数似然性,该逻辑模型为其训练数据y_true返回y_pred概率。仅为两个或多个标签定义对数丢失。对于在{0,1}中具有真实标签yt且yt = 1的估计概率yp的单个样本,对数损失为

 -log P(yt | yp)=-(yt log(yp)+(1-yt)log(1-yp))

用户指南中阅读更多内容。

参数 说明
y_true array-like or label indicator matrix
n_samples个样本的真实标签。
y_pred array-like of float, shape = (n_samples, n_classes) or (n_samples,)
由分类器的predict_proba方法返回的预测概率。 如果y_pred.shape =(n_samples,),则提供的概率假定为正类。假定y_pred中的标签按字母顺序排序,就像preprocessing.LabelBinarizer一样。
eps float
对于p = 0或p = 1,对数丢失是未定义的,因此概率被限制为max(eps,min(1-eps,p))。
normalize bool, optional (default=True)
如果为true,则返回每个样本的平均损失。否则,返回每个样本损失的总和。
sample_weight array-like of shape (n_samples,), default=None
样本权重。
labels array-like, optional (default=None)
如果未提供,将从y_true推断标签。如果label为None且y_pred具有形状(n_samples,),则假定标签为二进制,并从y_true推论得出。

版本0.18中的新功能。
返回值 说明
loss float

使用的对数是自然对数(以e为底)。

参考

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

示例

>>> from sklearn.metrics import log_loss
>>> log_loss(["spam""ham""ham""spam"],
...          [[.1.9], [.9.1], [.8.2], [.35.65]])
0.21616...

sklearn.metrics.log_loss应用示例