增加样本量对分类性能没有帮助

机器算法验证 机器学习 分类 数据挖掘 支持向量机
2022-04-12 06:41:28

我正在根据给定的文档集合训练 SVM 分类器。我从使用 500 个文档进行训练开始,然后再添加 500 个进行训练,以此类推。换句话说,我有三个训练集,500、1000、1500。较小的训练集是连续较大集的子集。我根据相同的测试集验证模型。

SampleSize  Precision   Recall      Accuracy      AUC
  500       79.62%          67.49%      77.65%    0.854
  1000       82.49%         77.94%       82.67%   0.890
  1500       81.64%         78.08%       82.28%   0.888

当我们使用 1000 个训练集时,性能最好。看起来用于构建 1500 个训练集的额外 500 个训练样本实际上对模型有害。我该如何解释这个观察结果。

2个回答

增加训练规模不一定有助于分类器,而是可能导致泛化能力下降。

关于您自己的实验,由于训练规模的增加,导致性能意外下降的因素可能是以下之一:

1- 随机性: 简单地说,如果您再次运行实验,您可能会看到与您的结果不同的结果。仅当分类器在训练中使用任何随机方法时。

2- 参数优化: 例如,在 SVM 中,在增加训练规模的同时,如果数据不是线性可分的,则可能需要增加松弛变量的值(@Douglas)。这种参数优化有助于解决任何违反空间线性可分性的新训练点。

3- 过拟合: 对一些分类器进行较长时间的训练或使用额外的训练点,可能会导致训练数据的性能良好,但测试部分的性能较差。这是因为您的分类器可能非常适合训练点,以至于难以预测具有不同特征的新点。

4- 实验设计:对数据的不同部分(交叉验证)进行多次实验并报告分数 会更具指示性。在这种情况下,我们将有一个 MEAN 准确度值和一个 STDEV,这将是您所拥有的观察的更现实的指标。

我对你的建议是在相同的环境中再次运行相同的实验。如果得到不同的结果,则检查代码中的随机部分。然后,即使你得到相同的结果,也要使用交叉验证。最后,您可以调整 SVM 的一些参数。

一种可能性是数据不是线性可分的,或者最好的线性分离没有给出最好的分类器。因此,一种常见的方法是使用软边距。松弛量应该随着训练集的大小而增加。如果您不这样做,那么使用更多数据可能会得到更差的结果。