mars.learn.metrics.log_loss#
- mars.learn.metrics.log_loss(y_true, y_pred, *, eps=1e-15, normalize=True, sample_weight=None, labels=None)[来源]#
对数损失,也称为逻辑损失或交叉熵损失。
这是在(多项)逻辑回归以及其扩展如神经网络中使用的损失函数,定义为返回其训练数据
y_pred概率的逻辑模型的负对数似然。对数损失仅定义于两个或更多标签的情况下。对于一个单一样本,其真实标签\(y \in \{0,1\}\)和概率估计\(p = \operatorname{Pr}(y = 1)\),对数损失为:\[L_{\log}(y, p) = -(y \log (p) + (1 - y) \log (1 - p))\]在用户指南中阅读更多内容。
- Parameters
y_true (数组类似 或 标签指示矩阵) – n_samples 样本的真实(正确)标签。
y_pred (类似数组 的 浮点数, 形状 = (样本数, 类别数) 或者 (样本数,)) – 预测的概率,由分类器的 predict_proba 方法返回。如果
y_pred.shape = (n_samples,)提供的概率被假定为 正类的概率。y_pred中的标签被假定为 按字母顺序排列,如preprocessing.LabelBinarizer所做的那样。eps (float, default=1e-15) – 对于 p=0 或 p=1,日志损失是未定义的,因此概率被限制在 max(eps, min(1 - eps, p))。
normalize (bool, default=True) – 如果为真,返回每个样本的平均损失。否则,返回每个样本损失的总和。
sample_weight (类数组,形状 (n_samples,), 默认值=None) – 样本权重。
标签 (类数组, 默认=None) – 如果未提供,标签将从 y_true 推断。如果
labels为None并且y_pred形状为 (n_samples,),则假设标签为二分类,并从y_true推断。
- Returns
损失
- Return type
备注
使用的对数是自然对数(以e为底)。
示例
>>> from mars.learn.metrics import log_loss >>> log_loss(["spam", "ham", "ham", "spam"], ... [[.1, .9], [.9, .1], [.8, .2], [.35, .65]]) 0.21616...
参考文献
C.M. Bishop (2006). 模式识别与机器学习. 斯普林格, 第209页。