【问题标题】:Unbalanced Training Data for Machine Learning (CNNs / RNNs)机器学习的不平衡训练数据(CNN/RNN)
【发布时间】:2017-09-19 11:57:34
【问题描述】:
我发现,在不平衡的训练数据上训练一些 CNN 和 RNN 时,我的训练收敛速度相对较快,准确度大约是更大类的百分比(例如,如果有 80% 是的示例,它可能总是会输出是的)。我发现这是可以解释的……这个解决方案是局部最优的,网络在训练时无法逃脱它。这种解释是否正确,因此这种行为主要出现在这些情况下?
我能做些什么来反对它?合成更多的训练数据以使集合更均匀?还有什么?
非常感谢!
【问题讨论】:
标签:
machine-learning
tensorflow
conv-neural-network
recurrent-neural-network
【解决方案1】:
您的问题与 TF 无关,这是机器学习中的标准问题。只需在 google 中输入“处理机器学习中的不平衡数据”并阅读几页即可。
这里有一些方法:
- 获取更多数据
- 使用其他指标 (f1)
- 欠采样/过采样/加权
【解决方案2】:
是的,你是对的。不平衡的训练数据确实会影响准确性。解决不平衡类问题的一些解决方案如下:
1) 更多数据收集:在某些情况下,这并不容易。例如,与非欺诈案件相比,欺诈案件的数量非常少。
2) 欠采样:从多数类中删除数据。您可以随机删除它或提供信息(从发行版中获取帮助来决定要删除哪些部分/补丁)
3) 过采样:复制属于少数类的观察结果。