0-1 损失函数说明

机器算法验证 机器学习 分类 损失函数
2022-01-18 15:04:08

我试图了解损失函数的目的是什么,但我不太明白。

因此,据我所知,损失函数是为了引入某种度量标准,我们可以用它来衡量错误决策的“成本”。

假设我有一个包含 30 个对象的数据集,我将它们划分为 20 / 10 之类的训练/测试集。我将使用 0-1 损失函数,所以假设我的类标签集是M,函数看起来像这样:

L(i,j)={0i=j1iji,jM

所以我在我的训练数据上建立了一个模型,比如说,使用朴素贝叶斯分类器,这个模型正确地分类了 7 个对象(为它们分配了正确的类标签)和 3 个对象错误。

所以我的损失函数会返回“0”7 次和“1”3 次——我能从中得到什么样的信息?我的模型错误地分类了 30% 的对象?或者还有更多?

如果我的思维方式有任何错误我很抱歉,我只是在努力学习。如果我提供的示例“太抽象”,请告诉我,我会尝试更具体。如果你想用不同的例子来解释这个概念,请使用 0-1 损失函数。

3个回答

您已经正确地将 0-1 损失函数总结为有效地查看准确性。您的 1 成为错误分类项目的指标,无论它们是如何被错误分类的。由于您在 10 个项目中有 3 个 1,因此您的分类准确率为 70%。

如果您更改损失函数的权重,则此解释不再适用。例如,在疾病分类中,漏诊阳性病例(假阴性)可能比错误诊断疾病(假阳性)代价更高。在这种情况下,您的损失函数将更加重视假阴性错误分类。在这种情况下,您的损失总和不再代表准确性,而是错误分类的总“成本”。0-1 损失函数的独特之处在于它等同于准确性,因为您关心的是您是否正确,而不是错误是如何产生的。

是的,基本上就是这样:您计算错误分类项目的数量。后面就没什么了,就是一个很基础的损失函数。接下来,0-1 损失导致目标分布的估计模式(与估计中位数损失相比)。L1L2

我认为您的困惑是没有区分一个数据点的损失与整个数据集的损失。

具体来说,您的是一个数据点的损失(我正在稍微更改符号)。而整个数据集的损失,即分类准确率,需要对所有数据点求和。L(y,y^)

iL(yi,y^i)