是的,可以使用此置信度数据。但是,我不推荐您提到的方法。相反,让我建议一种不同的方法。实际上,我会推荐两个。第一个在概念上是干净的;第二个可能更容易实现;在实践中它们可能大致相等。
调整损失函数
您可以调整损失函数以反映您对训练数据的置信度得分。
特别是,如果您使用的是交叉熵损失,那么有一种特别干净的方法可以做到这一点。让我解释一下交叉熵损失的一些背景,然后解释一下如何。我们将训练实例上的标签视为标签上的概率分布。在二元分类中,这样的分布可以表示为一个向量(p0,p1)在哪里p0 表示标签为 0 的概率,并且 p1 标签为 1 的概率。通常,我们会得到“硬标签”:如果我们知道实例上的正确标签 X 为0,则对应于概率分布 ( 1 , 0 ); 如果正确的标签是 1,那就是分布( 0 , 1 ). 然后,交叉熵损失将分类器的预测与该分布进行比较。
交叉熵损失的好处在于它很容易生成比较任何两个分布。因此,如果你有信心0.8 例如,正确的标签 X 为 0,则对应于一个概率分布 ( 0.8 , 0.2 ). 现在,您可以计算分类器预测相对于分布的交叉熵( 0.8 , 0.2 ),这就是对训练实例损失的贡献 X. 对训练集中的所有实例求和,得到调整后的损失函数。
现在,您可以通过最小化这个调整后的损失函数来训练分类器,这将直接将所有信息合并到您的置信度分数中。
使用权重
或者,您可以使用权重来反映置信度信息。
一些分类器允许您为训练集中的每个实例指定权重。这个想法是,对特定实例的错误预测会与其权重成比例地受到惩罚,因此具有高权重的实例对于正确处理更为重要,而具有低权重的实例则不太重要。或者,等效地,训练过程更努力地避免在具有高权重的实例上出现错误。
您可以使用权重来反映置信度信息。假设你有一个实例X在你认为应该有标签 0 的训练集中,有信心0.8. 您将添加一份( x , 0 )到带有权重的训练集0.8(即,实例是X标签为 0),并添加一份( x , 1 )到带有权重的训练集0.2(即,实例是X标签为 1)。以这种方式建立训练集。这会使训练集的大小翻倍。现在使用这些权重训练一个分类器。
对于支持权重的分类器,这应该很容易实现。
也可以证明它是有效和合理的。例如,当使用交叉熵损失来训练分类器时,这种使用权重的方法相当于调整上面强调的损失函数。因此,在这种特定情况下,这两种方法实际上是等价的。