Vowpal Wabbit会在每个纪元/通过后自动将其数据洗牌吗?我希望创建的缓存文件将包含在线算法(如VW的默认在线SGD方法)所必需的混洗元数据。 E.g。
vw -d train.txt -c --passes 50 -f train.model
如果没有,我有一个备份脚本,可以在每次传递时手动洗牌数据
# Create the initial regressor file
vw -d train.txt -f train.model
# For the next 49 passes, shuffle and then update the regressor file
for i in {0..49}
do
<some script: train.txt --> shuffled_data.txt>
vw -d shuffled_data.txt -i train.model -f train.model
done
如果大众没有自动洗牌,那么是否有更有效的方式来执行上述代码块?不幸的是,VW的wiki对此并不清楚。感谢。
答案 0 :(得分:2)
不,它没有洗牌。我敢打赌,这也不值得改变数据。洗牌非常耗费I / O.虽然在没有改组的情况下进行两次不同的随机顺序而不是两次传球可能会更好,但就收敛而言,它可能与没有改组的10次传球一样昂贵。