2014-01-06 4 views
6

Vowpal Wabbitは、エポック/パスごとに自動的にデータをシャッフルしますか?私は、作成されたキャッシュファイルに、VWのデフォルトのオンラインSGDメソッドのようなオンラインアルゴリズムに必要なシャッフルメタデータが含まれていることを期待しています。例えば。Vowpal Wabbitは複数のオンラインパスでデータをシャッフルしますか?

vw -d train.txt -c --passes 50 -f train.model 

ない場合、私は手動ですべての上のデータをシャッフルバックアップスクリプトを持っているがVWが自動的にシャッフルしない場合は、上記のコードを実行するより効率的な方法がある

# 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

タグを確認した時点で投票が終了するまでに数秒かかりました。 – JMK

+0

なぜですか?私は何を間違えたのですか? – richizy

+0

何もありません!私はちょうど質問されているライブラリの存在について無知だった、良い質問+1 – JMK

答えて

2

いいえ、シャッフルしません。私はそれもデータをシャッフルする価値がないと確信しています。シャッフルは非常にI/O集中的です。シャッフルなしで2回のパスとは異なるシャッフルオーダーで2回のパスを行うほうが良いかもしれませんが、コンバージェンスに関しては、シャッフルなしで10回分のコストがかかります。

+2

このルールは、スパースな機能を持つ数百万の例がある場合にも適用されますか?どんなに多くのパスを演奏しても、アルゴリズムはシャッフルしなければ最初のパスに収束しているようです。 – richizy

+0

VW(シェルから実行)が列車データをシャッフルしない場合、列車ファイルに列車名を付けて列車ファイルを与えると、精度がほぼゼロになることがあります。しかし、VWをPython sklearnで起動すると、精度が上がっているのでシャッフルしているようです。 –

関連する問題