2

我正在使用一个数据集,如果一个例子被标记为正面,它肯定是正面的。不幸的是,对于负类,如果标签被标记为负类,则不能这样说(它可能会变成正类)。标记为负面的示例数量也远远超过标记为正面的示例数量。我正在尝试在此训练数据集上学习分类模型。我想知道在这种情况下可以使用哪些技术(特定类别的标签可能很嘈杂)

4

2 回答 2

2

大多数分类器认为,标签的噪声不是问题,某些数据被错误标记(如 SVM 及其软边距)。这里有趣的是,一个特定类的正确性之间存在不成比例的事实。这可以通过以下几种方式来解决:

  • 使用类加权方案并按比例为正类赋予更大的权重,因为它的“正确性”你应该更关心正确的分类,而你可以有更多的负类错误分类元素(这也是类的解决方案大小不等)
  • 在使用一些参数拟合时 - 使用自定义的黑客指标,这将使积极因素超过消极因素(所以你更关心 TP 和 FP,而并不真正关心 TN 和 FN)。最简单的情况是精度指标,它只是忽略 TN 和 FN,但您也可以使用F-beta 指标,它在精度和召回率之间取得平衡——在您的情况下,您应该选择小 beta(可能与正/负正确性)。一般来说,这个 beta 参数显示了你关心召回率和精度的次数。
  • 使用新奇检测代替二元分类,重点检测正样本。此类任务有许多可能的模型,其中之一是一类 SVM。
于 2013-09-20T18:27:50.830 回答
1

您还可以尝试修复数据集中的标签:如果数据集真的太嘈杂,它可能会损害分类器的性能(如在假设的没有噪音的上帝标准测试集上评估的那样)。

您可以使用分类器输出来帮助您进行标记。如果您使用的是 scikit-learn,则某些模型SGDClassifier(loss='log')(例如)可以通过该predict_proba方法为您提供类分配概率。因此,您可以:

1- 在嘈杂的开发集上训练第一个模型 2- 计算此数据集上的类别分配概率 3- 假设分类器没有完全过度拟合噪声(如果您有很多真实的负样本,这对于线性模型不太可能) ,按概率对违规进行排名:将最有问题的分类错误排在最前面:它们是最有可能标记错误的示例 4- 按顺序手动检查这些违规并相应地更新标签

然后进行迭代,直到您对数据质量更加满意为止。

于 2013-09-20T19:55:46.600 回答