1

次のように、154の異なるクラスラベルを持つ1つのマルチクラス分類タスクにVowpal Wabbitを使用しようとしています:

  1. 大量のデータを使用してトレーニングされた VW モデル。
  2. 1 つの専用テスト セットでモデルをテストしました。

このシナリオでは、80% 以上の結果を達成できました。これは良い結果です。しかし、現在私が取り組んでいる問題は次のとおりです。

リアルタイム予測シナリオを複製する必要があります。この場合、モデルが値と出力を予測できるように、一度に 1 つのデータ ポイント (つまり、テキスト行) を渡す必要があります。

私は知っていたが失敗したすべてのオプションを試しました。ファイルとしてではなく、VWコマンドとともに1つのデータポイントを渡すことにより、リアルタイムシナリオを作成する方法を教えてください。

4

1 に答える 1

5

vwデーモンとして使用できます:

vw --daemon --port 54321 --quiet -i model_file -t --num_children 1

vwモデルをロードし、ポート 54321 (ローカルホスト上) でリッスンします。行 (改行、ASCII 10 で終わる) を送信するたびlocalhost:54321に、同じソケットで予測が返されます。次に例を示します。

echo " | your features here..." | netcat localhost 54321

これは単なる例です。通常は、 を呼び出す代わりに、ソケットに書き込み、次にソケットから読み取るプログラムを記述しますnetcat

vw通常の入出力および予測モードで呼び出すこともできます。

vw --quiet -i model_file -t -p /dev/stdout

そして、( 経由で) 書き込み、( 経由でstdin) 読み取りますstdout。重要なのは、送信する入力行ごとに 1 行の出力を同じ順序で取得することです。一度に行を送信してから、応答Nを読み返すこともできます。Nリクエストとレスポンスの相対的な順序が維持されることが保証されます。

于 2015-06-17T17:38:00.767 に答える