随着设定尺寸的增加,训练集精确度降低

时间:2018-04-03 15:07:40

标签: machine-learning training-data

为了更多地了解机器学习算法,我正在玩我自己收集的一些数据,但是当我使用神经网络算法时,我有一种奇怪的行为......

我的数据集由分为3个不同类别的数据组成(比如A是数据集的5%,B是数据集的5%,C是数据集的90%)。

当我尝试使用“小”训练集(约1800个条目)时,我的训练集准确度接近100%(A:99%B:100%C:100% - >非常正常),但我的交叉验证设置和测试集准确性非常差。

所以我尝试使用更大的训练集(~12000个条目),我的训练集准确度急剧下降(A:18%,B:28%,C:99%),测试集的准确性确实如此还是不好。

然后我尝试了中等训练集(~5500个条目),正如预期的那样,训练集在两个先前的结果之间(A:45%,B:78%,C:99%)和测试 - 设定准确度显然很糟糕。

你知道这样结果可能是什么原因吗?我的数据集是否缺少可以帮助它区分A,B和C三个类别的定性特征,还是可以解释这些结果的另一个潜在原因?

配置我当前的神经网络,以防它提供一些提示:

  • 隐藏图层:1
  • 激活单位数:功能数量的两倍
  • lambda:2.0

1 个答案:

答案 0 :(得分:1)

你对C级过度拟合,因为三个训练集的维度非常不平衡(5%,5%和90%)。这首先解释了交叉验证和测试集的低精度。然后,当训练集大小增加时,由于拥有如此多的C项,训练集的准确性也会下降,如果你使用较小的学习率,它们也会大幅修改网络权重。

换句话说,由A类和B类培训引起的权重修改基本上被网络“忘记”,因为C类培训引起的修改更为重要。