假设我想学习一个预测电子邮件是否为垃圾邮件的分类器。假设只有 1% 的电子邮件是垃圾邮件。
最简单的方法是学习一个简单的分类器,该分类器说所有电子邮件都不是垃圾邮件。这个分类器会给我们 99% 的准确率,但它不会学到任何有趣的东西,并且会有 100% 的假阴性率。
为了解决这个问题,人们告诉我要“下采样”,或者在数据子集上学习,其中 50% 的示例是垃圾邮件,50% 不是垃圾邮件。
但我担心这种方法,因为一旦我们构建了这个分类器并开始在真实的电子邮件语料库上使用它(而不是 50/50 测试集),它可能会预测很多电子邮件是垃圾邮件真的不是。只是因为它习惯于看到比数据集中实际更多的垃圾邮件。
那么我们如何解决这个问题呢?
(“上采样”或多次重复正训练示例,因此 50% 的数据是正训练示例,似乎遇到了类似的问题。)