网络训练的平衡抽样?

机器算法验证 神经网络 采样 参考
2022-03-17 22:40:35

我有一个非常不平衡的样本集,例如 99% 正确和 1% 错误。

选择一个 50/50 分布的平衡子集进行神经网络训练是否合理?原因是,我猜对原始数据集的训练可能会导致对真实样本的偏差。

您能否向我推荐一些涵盖该主题的文献,尤其是针对神经网络的文献?

1个回答

是的,选择一个平衡的数据集是合理的,但是如果你这样做,你的模型可能会过度预测操作中(或测试集上)的少数类。这很容易通过使用不是 0.5 的阈值概率来克服。选择新阈值的最佳方法是优化验证样本,该样本与操作(或测试集中)遇到的类频率相同。

与其对数据重新采样,更好的做法是对训练标准中的正例和负例赋予不同的权重。这样做的好处是您可以使用所有可用的训练数据。类别不平衡导致困难的原因不是不平衡本身。更多的是您没有足够的少数类示例来充分代表其潜在分布。因此,如果您重新采样而不是重新加权,那么您正在通过使多数类的分布也被严重表示来解决问题。

有些人可能会建议简单地使用不同的阈值,而不是重新加权或重新采样。该方法的问题在于,使用人工神经网络优化隐藏层单元以最小化训练标准,但训练标准(例如平方和或交叉熵)取决于模型的行为如何远离决策边界而不仅仅是靠近决策边界。结果,隐藏层单元可能被分配给降低训练标准值的任务,但无助于准确分类。在这里使用重新加权的训练模式会有所帮助,因为它倾向于将注意力更多地集中在决策边界上,因此隐藏层资源的分配可能会更好。

对于参考,谷歌学者搜索“Nitesh Chawla”将是一个好的开始,他在这方面做了相当多的非常扎实的工作。