使用神经网络和网格搜索进行火车验证-测试拆分

时间:2019-08-10 09:46:24

标签: machine-learning neural-network artificial-intelligence

我正在使用神经网络(NN)在机器学习环境中工作。

从理论上讲,我熟悉将可用数据集分为三部分的一般做法:

  • 训练集:用于设置模型的参数(即NN权重)。
  • 验证集:用于调整模型的超参数(例如,隐藏层数,每层神经元数...)。
  • 测试集:用于评估模型的性能。

我想使用网格搜索选择一个好的网络体系结构(我的问题不太复杂,数据集也不太大,所以这是可行的),但是我不确定如何将此三向拆分应用于我的问题

单独安装神经网络(例如,使用keras),因此仅学习权重就可以将数据集分为训练集和验证集(使用EarlyStopping回调甚至需要这样做)。

这意味着,在进行网格搜索时,我已经使用训练和验证集拟合了模型(即验证集将对模型的外观产生影响)。这意味着以前的测试集会以某种方式变为新的验证集,我将使用它来选择网格搜索中性能最佳的体系结构。

然后可以在第二步中使用完整数据集上的交叉验证对模型性能进行评估。

这种方法正确吗?还是我混淆了?

1 个答案:

答案 0 :(得分:0)

  

这意味着,在进行网格搜索时,我已经使用训练和验证集拟合了模型(即验证集将对模型的外观产生影响)。

是的,网格搜索有助于使用交叉验证拆分策略找到最佳的超参数。

  

这意味着以前的测试集以某种方式变成了新的验证集,我将使用它来选择网格搜索中性能最好的体系结构。

使用测试仪查看实际性能。网格搜索将根据交叉验证集为您的模型返回最佳的超级参数。