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...