什么被认为是好的日志丢失?

机器算法验证 机器学习 损失函数 对数损失
2022-02-09 04:40:22

我试图更好地理解日志丢失及其工作原理,但我似乎找不到的一件事是将日志丢失数放入某种上下文中。如果我的模型的对数损失为 0.5,那很好吗?什么是好成绩和坏成绩?这些阈值如何变化?

4个回答

与任何指标一样,如果您不得不在没有观察信息的情况下进行猜测,那么一个好的指标就是比“愚蠢”的偶然猜测更好的指标。这在统计学中称为仅截距模型。

这种“愚蠢”的猜测取决于两个因素:

  1. 班级数
  2. 类的平衡:它们在观察数据集中的普遍性

在 LogLoss 指标的情况下,一个常见的“众所周知”指标是说0.693是非信息值。这个数字是通过预测p = 0.5任何类别的二元问题而获得的。这仅对平衡二元问题有效因为当一个类别的流行率为 10% 时,您将p =0.1始终预测该类别。这将是你愚蠢的偶然预测的基线,因为预测0.5会更愚蠢。

、类数N对dumb-logloss的影响:

在平衡的情况下(每个类别的流行率相同),当您p = prevalence = 1 / N对每个观察进行预测时,等式变得简单:

Logloss = -log(1 / N)

log对于使用该约定的人来说,是Lnneperian 对数。

在二进制情况下,N = 2Logloss = - log(1/2) = 0.693

所以哑对数损失如下:

取决于类数的哑对数损失 - 平衡的情况

二、类的流行对dumb-Logloss的影响:

一种。二进制分类案例

在这种情况下,我们总是预测p(i) = prevalence(i),我们得到下表:

二进制分类 logloss,平衡表

因此,当类非常不平衡时(流行率 <2%),0.1 的对数损失实际上可能非常糟糕!在这种情况下,例如 98% 的准确度会很糟糕。所以也许 Logloss 不是最好的指标

二进制分类 logloss,不平衡 - 图表

湾。三级案例

“哑” - logloss取决于流行 - 三类案例:

三类分类logloss,不平衡

我们可以在这里看到平衡二元和三类情况(0.69 和 1.1)的值。

结论

0.69 的 logloss 在多类问题中可能很好,而在二元偏差情况下则非常糟糕。

根据您的情况,您最好自己计算问题的基线,以检查您的预测的含义。

在有偏见的情况下,我知道 logloss 与准确性和其他损失函数存在相同的问题:它仅提供对您的性能的全局测量。因此,您最好使用专注于少数类(召回和精度)的指标来补充您的理解,或者根本不使用 logloss。

对数损失很简单L(pi)=log(pi)在哪里p只是归因于真实类别的概率。

所以L(p)=0很好,我们将概率归因于1到正确的班级,而L(p)=+不好,因为我们将概率归因于0到实际课堂。

所以,回答你的问题,L(p)=0.5平均而言,您将概率归因于正确的类别p0.61跨样本。

现在,决定这是否足够好实际上取决于应用程序,因此取决于争论。

所以这实际上比 Firebugs 响应更复杂,这完全取决于您试图预测的过程的固有变化。

当我说变化时,我的意思是“如果一个事件要在完全相同的条件下重复,无论是已知的还是未知的,那么相同结果再次发生的概率是多少”。

一个完美的预测器会有损失,概率 P:损失 = P ln P + (1-P) ln (1-P)

如果您试图预测某些事情,更糟糕的是,某些事件的预测结果为 50/50,那么通过积分并取平均值,平均损失将是:L=0.5

如果您要预测的内容具有更高的可重复性,则完美模型的损失会更低。例如,假设有足够的信息,一个完美的模型能够预测一个事件的结果,在所有可能的事件中,最坏的情况是“这个事件将以 90% 的概率发生”,那么平均损失将是 L=0.18 .

如果概率分布不均匀,也会存在差异。

因此,在回答您的问题时,答案是“这取决于您要预测的内容的性质”

我想说标准统计答案是与仅拦截模型进行比较。(这处理其他答案中提到的不平衡类)cf mcFadden 的伪 r^2。 https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/

现在的问题是最大值是多少。从根本上说,问题是事件的概率在事件模型之外是未定义的。我建议的方法是您将测试数据汇总到一定水平,以获得概率估计。然后计算这个估计的对数损失。

例如,您根据(web_site、ad_id、consumer_id)预测点击率,然后将点击次数、展示次数汇总到例如 web_site 级别,并计算每个网站在测试集上的点击率。然后使用这些测试点击率作为预测来计算您的测试数据集的 log_loss。对于仅使用 website ids 的模型,这就是您的测试集上的最佳 logloss 问题是我们可以通过添加更多特征直到每条记录都被唯一识别,从而使这种损失尽可能小。