查询神经网络模型

数据挖掘 神经网络 监督学习 matlab 准确性 训练
2022-03-08 14:13:40

我使用 matlab 中的神经网络工具箱来训练我的数据。我使用了四种训练算法,缩放共轭梯度 (SCG)、具有动量和自适应学习反向传播 (GDX) 的梯度下降、弹性反向传播 (RBP) 和 Broyden-Fletcher-Goldfarb-Shanno 准牛顿反向传播 (BFG)。我已经将种子固定在不同的点并获得了准确性。这就是我得到的: 第一列包含特征集的大小。我添加了功能并增加了功能集的大小来分析性能。在此处输入图像描述


最初我对特征进行了排名,然后将前 8 个特征作为一组,将前 16 个特征作为下一组,依此类推。'-' 之前的第一个数字是算法在训练集上的性能,'-' 之后的第二个数字是测试集的准确度。训练集和测试集分别分为 60 个和 20 个。另外 20 个是验证集。每个学习算法都使用相同的种子值运行以修复准确性。

顺便说一句,我已经修复了种子以获得每个结果,就像我使用了 rng(1)、rng(10)、rng(158)、rng(250) 并对结果进行平均以获得一对训练测试精度,我对每一对都这样做了。

如您所见,对于每个单独的训练算法,我在所有特征集大小上都获得了相同的准确度。相同的数据显示了 SVM chen 中的扰动,我更改了集合大小。这是什么意思?

1个回答

要调试这种情况,我建议您尝试以下步骤:

  1. 逐步减少特征,直到最终只使用 1 个特征,然后查看准确性是否发生变化。
  2. 向特征集添加正弦波和随机噪声,看看它是否影响这些优化算法中的任何一种。
  3. 重新评估您如何选择或派生这些特征,检查这些特征是否高度相关。
  4. 您的分类目标是否高度不平衡?如果是这样,那么对它们进行欠/过采样以实现更平衡的训练集。然后在对这个平衡数据集进行训练后检查算法的性能。

正如 Jan van der Vegt 已经强调的那样,将特征数量从 8 个更改为 40 个对测试集的准确性没有影响是非常奇怪的。