【问题标题】:Does Vowpal Wabbit shuffle data in multiple online passes?Vowpal Wabbit 是否会在多个在线通行证中对数据进行洗牌?
【发布时间】:2014-01-23 08:07:06
【问题描述】:

Vowpal Wabbit 是否会在每个 epoch/pass 后自动洗牌?我希望创建的缓存文件将包含在线算法所需的改组元数据,如大众汽车的默认在线 SGD 方法。例如

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

如果大众不自动洗牌,那么有没有更有效的方法来执行上述代码块?不幸的是,大众的维基对此并不清楚。谢谢。

【问题讨论】:

  • 当我检查标签时,我距离投票结束只有几秒钟的时间!
  • 为什么?我做错了什么?
  • 没什么!我只是不知道有人问图书馆的存在,好问题+1
  • 就是那个“vowpal wabbit”的名字。在以前没有经验的人的脑海中引发幽默(和怀疑?)。
  • 在我看来,像这样的洗牌只会过度拟合训练集。

标签: machine-learning vowpalwabbit


【解决方案1】:

不,它不会随机播放。我敢打赌,也不值得对数据进行洗牌。洗牌是非常 I/O 密集型的。虽然以不同的 shuffle 顺序进行两次 pass 可能比不进行 shuffle 进行两次 pass 更好,但就收敛性而言,它可能与不 shuffle 的 10 次 pass 一样昂贵。

【讨论】:

  • 这个经验法则会扩展到有数百万个具有稀疏特征的示例的情况吗?似乎无论我执行多少遍,如果我不洗牌,算法似乎已经在第一遍收敛。
  • 如果 VW(从 Shell 运行)不洗牌训练数据,也许这就是为什么当我给它一个带有有序标签的训练文件时,它的准确度几乎为零。但是,当我通过 Python sklearn 启动 VW 时,它似乎确实在改组,因为准确性很好。
猜你喜欢
  • 2017-02-09
  • 2018-01-07
  • 2016-10-06
  • 2015-04-08
  • 2015-09-02
  • 2016-01-19
  • 2016-09-21
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多