每类多类对数损失函数

机器算法验证 机器学习 分类 对数 多级 损失函数
2022-03-27 05:42:51

在多分类问题中,我们定义了对数损失函数 F每个标签的对数损失函数而言 Fi作为:

F=1NiNjMyijLn(pij))=jM(1NiNyijLn(pij)))=jMFi

在哪里N是实例数,M是不同标签的数量,yij是具有预期标签的二进制变量,并且pij是分类器输出的分类概率i-实例和j-标签。

成本函数F测量两个概率分布之间的距离,即实际标签和分类器概率的分布有多相似。因此,接近零的值是首选。

然而,每个标签的成本函数Fi有什么意义吗?似乎是在衡量我们的分类器在每个标签上的表现如何,但它受实例数量的影响N不包含此标签的。

2个回答

正如您正确指出的那样,纯分类器(概率为 1)的对数损失为 0,这是首选情况。

考虑一个以完全随机的方式分配标签的分类器。分配到正确班级的概率为1/M因此,每个观察的对数损失将为-log(1/M) = log(M). 这与标签无关。

可以将单个观察的对数损失与该值进行比较,以检查分类器在随机分类方面的执行情况。但是,这可能没有多大意义。让我们举个例子。

考虑一个对观察进行错误分类的强大分类器。让我们假设观察实际上属于类“x”,并且属于类的预测概率为 0(几乎)。因此,对数损失的个体和整体价值将为 Inf。这是很常见的,而且大多被忽略了——这是一个观察结果,但它没有评论分类器的整体准确性。但是,我们可以通过 2 种方式来理解这一点: 方法 1:观察结果可能是异常值。删除它并再次运行分类方法2:平滑所有观察(不仅仅是当前观察)的类归属的概率密度函数

注意:如果你关心类归属的预测概率而不仅仅是预测类,我强烈建议你看方法2。它一般在文本检索(语言模型)中研究;它可能与您的情况有关。

加法:e^(-loss) 是正确预测的平均概率。该值可以与随机分类的值进行比较。

根据我对 Log loss 的理解,如果您正在评估观察结果yij=0然后yijLn(pij)=0因此这些将减少不包含此标签的每个实例的日志损失值。

如果pij即使是高yij=0它不会影响当前类的对数损失,但推测正确类的预测会相应较低,导致该类的对数损失更高并增加jMFi

因此,我希望您应该避免口译Fi单独,因为它不会考虑误报。