2

私は素晴らしいvowpal wabbit toolを使用してコマンドを次のようにカテゴリ分類のためのバイナリシグモイドフィードフォワードネットワークを訓練したいと思います:vowpal-wabbit:過剰適合を避けるために、複数回のパス、ホールドアウト、ホールドアウト期間の使用?

vw --binary -t -i category.model -p test.vw 

しかし、私は非常に悪い結果が(私に比較しました:

vw --binary --nn 4 train.vw -f category.model 

そして、それをテスト線形SVM推定器)。

Number of Training Passes引数(--passes arg)を使用する必要があるというコメントが見つかりました。

私の質問練習のカウントを知る方法再訓練されたモデルを取得しないようにするには?

P.S. holdout_period引数を使用する必要がありますか?そしてどうやって?

答えて

2

質問のテストコマンドが正しくありません。入力がありません(出力予測を示す-p ...)。また、あなたがテストまたはする場合は、それはtestを言うのでを予測するが、使用されるコマンドが-p ...

テストを持って明らかではないが、あなたは、データのラベルが付いていると、あなたのモデルの品質を評価していることを意味します。厳密に言えば、の予測は、ラベルがないことを意味するので、予測がどれほど良いかは実際は分かりません。実際には、保有しているラベル付きデータ(無視することによってラベルがないと思われる)を予測し、実際にラベルを付けているので、これらの予測がどれほど良いかを評価することもできます。一般

  • あなたはバイナリ分類を行いたい場合は、あなたが{-1, 1}でラベルを使用して--loss_function logisticを使用する必要があります。 --binaryこれは独立したオプションであり、予測をバイナリにすることを意味します(情報を少なくします)。

  • すでにラベル付きのテストセットがある場合、保留する必要はありません。

vwでホールドアウト機構は、複数のパスが全て例は効果的に保持されたアウトされているので、単一パスに使用されているときにのみ関連し、テストセットを交換し、オーバーフィッティングを避けるために設計されました。次の(まだ見えない)各例は、1)予測のためにラベルが付けられておらず、2)試験およびモデル更新のためにラベル付けされたものとして扱われる。 IOW:あなたの列車は効果的にあなたのテストセットです。

ですから、列車設定されていないホールドアウトで上複数のパスを行うことができ、次のいずれか

vw --loss_function logistic --nn 4 -c --passes 2 --holdout_off train.vw -f model 

、その後、別の標識された、テスト・セットでモデルをテスト:

vw -t -i model test.vw 

または複数のパスを同じ列車セットで行い、いくつかのホールドアウトをテストセットとして実行します。あなたは、テスト・セットを持っていない、とあなたが合う-強くするために複数のパスを使用したい場合は

vw --loss_function logistic --nn 4 -c --passes 20 --holdout_period 7 train.vw -f model 

、あなたはホールドアウトする例目ごとNを(Nが10で、デフォルトをvwを求めることができ、上記のように--holdout_period <N>を使用して明示的に上書きすることができます)。この場合、保留セットの損失が増加し始めると、vwは自動的に早期終了を行うため、より多くのパスを指定することができます。

あなたはvwのようなものに印刷されますので、あなたが早期終了を打つ気づくと思います:のみ5 Nのうちパスが実際に早期に停止する前に使用されたことを示す

passes used = 5 
... 
average loss = 0.06074 h 

を、保持されたアウトサブセットでのエラー例は0.06074です(末尾のhは、これが保留損失であることを示しています)。

あなたが見ることができるように、パス数、およびホールドアウト期間は完全に独立したオプションです。

あなたのモデルを改善し、より信頼できるようにするには、他の最適化を使用し、holdout_periodを変更してください。​​argsを試してください。また、utlサブディレクトリのvw-hypersearchユーティリティを確認して、より良いハイパーパラメータを見つけることができます。ソースに含まここ

テストセットのいずれかにvw-hypersearchの使用例は次のとおり

$ vw-hypersearch 1 20 vw --loss_function logistic --nn % -c --passes 20 --holdout_period 11 test/train-sets/rcv1_small.dat --binary 
trying 13 ............. 0.133333 (best) 
trying 8 ............. 0.122222 (best) 
trying 5 ............. 0.088889 (best) 
trying 3 ............. 0.111111 
trying 6 ............. 0.1 
trying 4 ............. 0.088889 (best) 
loss(4) == loss(5): 0.088889 
5  0.08888 

4又は5いずれかhold-に0.08888の損失を生じる​​ための良好なパラメータであるべきであることを示します11の例では1のサブセットを出力します。

関連する問題