【发布时间】:2019-08-11 20:16:19
【问题描述】:
我对使用经典的训练集、验证集和测试集来实现和调优参数和超参数有一些疑问。因此,如果有人能澄清这些概念并为我提供一些关于它在 Python 等语言中实现的提示,那将是非常有帮助的。
例如,如果我有一个神经网络,就我所知的参数调整(让我们考虑每层隐藏层和神经元的数量),可以使用训练集进行调整。因此,当涉及到大约 20% 的数据集的验证集时,我可以使用以下算法调整我的超参数:
示例:调整批量大小和学习率:
hyperListB=[]
hyperListL=[]
//let´s suppose both lists have the same dimensions
for i in range(0,hyperListB):
model=fit(train_set,hyperListB[i],hyperlistL[i]
values[].add(evaluate(model,validation_set) //add scores of each run
end for
for i in range(0,values):
plot_loss_functions(values)
select best set of hyperparameters
model=fit(test_set, selecter_hyperparameters)
evaluate(model)
这个步骤顺序正确吗?我已经搜索了不同的页面,但没有找到可以帮助我解决这个问题的东西。请记住,我不想使用交叉验证或其他基于库的技术,例如 GridSearchCV。
谢谢
【问题讨论】:
标签: machine-learning