1

ANN 初学者:

我正在实施一个反向传播神经网络来预测黄金价格。我知道我必须将我的数据拆分为训练数据、选择数据和测试数据。

但是我不确定如何继续使用这些数据集。起初我用我的训练集训练数据网络,然后在训练之后,我从测试集中获得了我的网络的一些输入,并比较了输出。

我不确定我是否做对了,选择集是否进来了?

提前致谢!

4

2 回答 2

1

总体思路是:

  1. 在训练集上训练网络一会儿。
  2. 在第二组(通常称为验证集)上评估网络。可能是您所说的选择集。
  3. 在训练集上对网络进行更多训练。
  4. 再次评估选择集上的新网络。
  5. 旧网络和新网络哪个更​​好?如果新网络更好,我们仍然可以从训练中获得一些用处,所以转到 3。如果新网络更差,更多的训练可能只会带来伤害。使用以前版本的网络,因为它做得更好。

通过这种方式,您可以知道何时停止训练。

对此的一个简单修改是始终跟踪迄今为止看到的最佳网络,并且只有当我们看到一些(例如,三个)训练尝试连续表现更差时,我们才会停止训练。

第三组,即测试集,是必要的,因为选择集(如果间接地)参与了训练过程。最终评估必须对训练期间根本没有使用的数据进行。

这种事情对于简单的实验来说已经足够了,但通常你会想要使用交叉验证来更好地了解系统的性能。

于 2012-04-10T02:04:08.713 回答
0

我想发表评论只是说验证集是模型相关超参数调整的好地方,但我是新来的,因此缺乏这样做的声誉点。为了使这更值得单独发布,我已经包含了我自己的训练验证测试过程的大纲。在实践中,我的工作流程如下:

  1. 识别、收集和清理数据。尝试在数据处理过程中限制抱怨。
  2. 将数据分成三组:训练、验证、测试。
  3. 建立两个“基础”模型,用于评估稍后在流程中构建的更复杂的模型。这些模型中的第一个通常是使用所有可能特征的基本线性/逻辑回归。第二种模型仅使用最明显的信息(信息特征的初始识别取决于用例,通常涉及领域知识、基本聚类、简单相关性的组合)。
  4. 开始更多的经验特征选择(即无监督的 NN,但通常是随机森林)并使用训练集制作各种模型的原型。
  5. 消除性能不佳的模型以及信息量不足的特征
  6. 使用训练集的修改版本(相同的数据,但没有信息量不足的特征)比较剩余模型与“基础”模型的性能。抛弃表现不佳的模型。
  7. 使用验证集,为每个模型调整适当的超参数(手动或网格搜索)。进一步减少所考虑的模型数量,理想情况下只需要 2-3 个(不包括基本模型)。
  8. 最后,在测试集上评估模型性能(使用优化的超参数)。再次,比较模型之间以及与基础模型。根据特定问题的计算复杂性/成本、易于解释/透明度/“可解释性”以及相对于基础模型的改进和/或性能的适当组合做出最终模型选择。
于 2014-04-30T04:10:06.707 回答