二元分类器的“哑”对数损失

机器算法验证 机器学习 分类 模型评估 不平衡类 对数损失
2022-04-09 22:56:48

我试图了解如何最好地将我训练和调整的分类器与“哑”分类器进行比较,特别是在具有不平衡类的二进制分类的上下文中。

这是我的实验总结:假设我有一个数据集,我在训练/验证/测试集中进行了拆分。我的分类器(这里是随机森林或梯度提升树)在训练集上进行训练,然后通过评估验证集的对数损失并选择对数损失最低的模型来选择最佳超参数。我选择这里是为了最小化对数损失,因为我希望模型在自信地预测错误的类别时会招致非常高的惩罚。

现在假设我想将我的分类器与测试集上的哑分类器进行比较,并假设我在测试集中具有以下类比例:
55% 类 0 和 45% 类 1。
还假设我的分类器的准确度是60%。

例如,一个特别愚蠢的分类器会将所有内容分类为 0,这将导致 55% 的准确度。这当然是一个糟糕的基准,即使作为一个愚蠢的基准。

假设我想将我的分类器与随机分类器进行比较,例如有偏差的硬币。如何计算有偏硬币的对数损失?

我最初认为我应该使用测试集中类的比例作为有偏硬币的概率,即 这将导致日志-损失:

P[X=0]=0.55 and P[X=1]=0.45

1Ni=1N(yilog(pi)+(1yi)log(1pi))=(0.55log(0.55)+0.45log(0.45))=0.6881

这样做,我觉得我犯了一个错误,因为它就像这个随机分类器已经知道我的测试集的分布?假设我的有偏硬币分类器的概率是在训练集中观察到的概率是正确的吗(例如 51% 的 0 类和 49% 的 1 类)并在我的测试集上随机模拟 0 类或 1 类的选择使用这些概率来计算对数损失?

谢谢!

2个回答

你是对的,如果你的“愚蠢”分类器知道测试集中成功的频率,它实际上就像一个预言机,而不是那么愚蠢。您正在泄漏测试集中的数据。很容易想象训练集和测试集之间存在巨大差异的极端情况,这种“愚蠢”分类器实际上会优于仅使用训练集训练的模型。

您应该做的是将您的“哑”分类器基于火车数据集的分布。事实上,对于二进制数据,预测均值或成功概率是假设平方误差或对数损失可以做出的最佳单值预测,因此它是最简单但并非完全无用的模型的一个很好的基准。

我喜欢我的解释R2 这里以及它如何与一个幼稚的模型相关联。你会寻找麦克法登的R2我提到过,因为它将模型的对数损失与每次天真地预测先验概率的模型的对数损失进行比较,就像线性回归一样R2天真地猜测汇集/边际均值y¯每次都在“分母”中。

RMcFadden2=1(yilog(p^i)+(1yi)log(1p^i))(yilog(ptrain)+(1yi)log(1ptrain))

分母是(与)您描述的有偏硬币的对数损失成正比。

这种质量的正值表示对“哑”分类器的改进。我们采取ptrain在分母中使用我们对训练集的知识而不作弊并查看任何样本外数据。

编辑

如果你看到我写R2在这里,你会看到我使用“naïve”这个词。我是这样看的:

你必须预测一张照片是狗还是猫的概率。显而易见的举动是查看照片并确定它是狗还是猫的可能性。然而,我不会给你看照片,但我会告诉你,狗的照片和猫的照片一样多(或者狗的数量是猫的十倍,或者任何比例)。

对照片一无所知,明智的,即使是幼稚的,猜测是类别比例(成为狗或成为猫的“先验”概率)。如果狗的照片和猫的照片一样多,猜猜有50/50两者的机会。如果每一张猫照片有九张狗照片,猜猜有90%成为狗的机会10%成为猫的机会。