【问题标题】:sklearn metrics.log_loss is positive vs. scoring 'neg_log_loss' is negativesklearn metrics.log_loss 是正数,而得分 'neg_log_loss' 是负数
【发布时间】:2017-08-22 05:13:08
【问题描述】:

确保我做对了:

如果我们单独使用sklearn.metrics.log_loss,即log_loss(y_true,y_pred),它会产生一个正分数——分数越小,性能越好。

但是,如果我们使用'neg_log_loss' 作为“cross_val_score”中的评分方案,则得分为负数——得分越大,性能越好。

这是由于评分方案的构建与其他评分方案保持一致。由于通常越高越好,我们否定通常的 log_loss 以与趋势保持一致。这样做完全是为了这个目的。这种理解正确吗?

[背景:metric.log_loss 得分为正,“neg_los_loss”得分为负,两者均参考同一文档页面。]

【问题讨论】:

  • 我也在想同样的事情

标签: scikit-learn metrics


【解决方案1】:

sklearn.metrics.log_loss 是通常定义的错误度量的实现,与大多数错误度量一样,它是一个正数。在这种情况下,它是一个通常被最小化的度量(例如作为回归的均方误差),与最大化的准确度等度量相反。

因此,neg_log_loss 是创建效用值的技术特性,它允许优化 sklearn 的函数和类以最大化该效用,而无需更改每个指标的函数行为(例如包括名为 cross_val_score、@ 987654325@、RandomizedSearchCV 等)。

【讨论】:

  • 那么,neg_log_loss 就等于 - log_loss?
  • 是的,neg_log_loss 完全等于 - log_loss,正如它所说的那样,例如here:“因此,衡量模型和数据之间距离的指标 [...] 返回指标的否定值。”
猜你喜欢
  • 1970-01-01
  • 2021-06-26
  • 2020-12-24
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多