我有一个包含20个功能和8个可能标签的简单数据集。但是,对于某些记录,可能有多个正确的标签。 我想训练这个模型,使预测的标签是可能的标签之一。什么是实现这一目标的好方法?
示例:请考虑以下记录:
[color: grey; legs:2; wings:2; mass: 120g;....]
有些记录被标记为" Sparrow"很少有人被命名为#34; Bird"。在测试期间,我并不关心这些标签中的哪一个被分配到记录中,只要它是其中之一。
答案 0 :(得分:5)
这当然取决于模型,但如果您使用具有交叉熵损失的神经网络,则完全有可能。在通常情况下,标签是单热矢量[0, ..., 0, 1, 0, ... 0]
。它的概率解释是目标类为i
,概率为1.0
(而0.0
为所有其他类。
没有什么可以阻止您定义标签[0, ..., 0, 0.5, 0, ..., 0, 0.5, 0, ... 0]
:正确的类i
概率0.5
和j
概率为0.5
。因此,该模型得知这两个标签对于给定的输入都是正确的。训练模型后,您甚至可以输出两个或更多类,例如概率高于threshold
的所有类。或者你总是可以选择最大可能类,在这种情况下,可以选择任何一个类。
请注意,此技巧(称为软类)仅适用于概率模型,并非所有机器学习算法都是概率性的。所以模型的选择在这里很重要。