我试图在Vowpal Wabbit中实现网格搜索或更复杂的超参数搜索。为此目的,是否有一种相对简单的方法来获得在验证集上获得的损失函数值(在vw中保持)?大众必须计算它,例如每次通过次数,因为早期停止取决于它的价值。
到目前为止,我通过创建一个带有验证数据集的单独文件来绕道而行,保存了不同的模型。预测这个数据集,并比较它们在python中的性能,从而招致不必要的数据浪费。但也许有一种方法可以明确地使用vw holdout分数吗?
答案 0 :(得分:2)
总结一下这些评论,有几种方法可以从大众那里获得延期亏损(可以合并):
--holdout_off
)。使用--holdout_period
可以指定不同于10的数字。--holdout_after=N
指定输入数据的前N个示例将用于训练,而其余文件将用作保持集(而不是每个第10个示例)。-p predictions.txt
计算大众以外的损失(通过将predictions.txt
与带金标签的输入数据进行比较)。使用X pass时,predictions.txt
将包含X * number_of_input_data_examples。因此,建议训练训练数据(可能需要多次通过),将模型保存到文件中,然后仅使用VW预测:vw -i trained.model -t -d test.input -p test.predictions
。--save_per_pass
或vw --daemon
和saving model on demand可能会有所帮助。