当有多个正确标签时,如何训练机器学习分类模型?

How to train a machine learning classification model when there are more than one correct label?

我有一个简单的数据集,其中包含 20 个特征和 8 个可能的标签。然而,对于某些记录,可能有不止一个正确的标签。 我想训练这个模型,使预测标签成为可能的标签之一。什么是完成此任务的好方法?

示例:考虑以下记录:

[color: grey; legs:2; wings:2; mass: 120g;....]

一些记录被标记为 "Sparrow",少数记录被命名为 "Bird"。在测试期间,我不关心这些标签中的哪一个分配给记录,只要它是其中之一即可。

这当然取决于模型,但如果您使用的是具有交叉熵损失的神经网络,则完全有可能。通常情况下,标签是一个单热向量[0, ..., 0, 1, 0, ... 0]。它的概率解释是目标 class 是 i,概率是 1.0(并且所有其他 class 是 0.0)。

没有什么能阻止您定义标签 [0, ..., 0, 0.5, 0, ..., 0, 0.5, 0, ... 0]:正确的 class 是 i 的概率为 0.5j 的概率为 0.5.因此,该模型了解到这两个标签对于给定的输入都是正确的。模型训练好后,你甚至可以输出两个或更多classes,例如概率高于 threshold 的所有 classes。或者您始终可以选择最大可能 class,在这种情况下,可以选择 class。

请注意,此技巧(称为 soft classes)仅适用于 probabilistic 模型,并非所有机器学习算法是概率性的。所以模型的选择在这里很重要。