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

时间:2018-05-17 17:03:05

标签: machine-learning artificial-intelligence classification data-science multilabel-classification

我有一个包含20个功能和8个可能标签的简单数据集。但是,对于某些记录,可能有多个正确的标签。 我想训练这个模型,使预测的标签是可能的标签之一。什么是实现这一目标的好方法?

示例:请考虑以下记录:

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

有些记录被标记为" Sparrow"很少有人被命名为#34; Bird"。在测试期间,我并不关心这些标签中的哪一个被分配到记录中,只要它是其中之一。

1 个答案:

答案 0 :(得分:5)

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

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

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