2017-01-16 2 views
1

私は、文脈的な強盗モデルの訓練のためのデータのフォーマットに関する2つの質問があります。Vowpal Wabbit Contextual Banditのデータフォーマット

Iは、以下...

1:1:0.2 | d1:us d2:female d3:12 

質問1のようなデータを持っている場合)私は、各機能は、必要に応じてフロートが続いていることをVWのWikiから読み出さ。私が価値観として(私たち、女性のような)カテゴリー的な特徴を持っている場合、それらを再フォーマットする最良の方法は何ですか?私は浮動小数点数の後ろにデフォルト値1を持たせてはいけないと思っています。これはワンホットエンコーディングを実現することを望んでいます。

質問2)私は今、実現することは、「私たち」、「女性」ということで、「12」は、機能として扱われ

1:1:0.2 | us female 12 

以下のように、私は誤ってデータをロギングすることでモデルを訓練してきましたデフォルト値は1です。正しいですか?

答えて

1

はい、正しいです。

入力フィーチャのフォーマットは、各フィーチャとスペースで区切られ、<name>:<value>となります。ここで、:<value>(存在する場合)は数値でなければなりません。

カテゴリ値を表現するには、と<value>の間にセパレータとして:以外のものを使用できます。この場合、文字列全体が機能名と見なされます。これはしばしば「ワンホットエンコーディング」と呼ばれます(それぞれの可能なフィーチャ+値コンボは別個のフィーチャとして扱われます)。

も機能名12数値機能が一般的である(及びLIBSVMの慣例であるため、これはユーザが望んであると仮定すると、ハッシュテーブルのスロット12(モジュロ2 ^ビット)に直接vwによってハッシュされることに注意します)。これはコマンドラインのオプション--hash allによって無効にすることができます。デフォルトは--hash stringsで、以下の意味を持ちます。(murmur3)ハッシュフィーチャー - 文字列(整数ではありません)のように見えますが、数字のようなフィーチャー名は単独で残します(ハッシュはしません)。

How to represent categorical features in vowpal-wabbitには、vwに入力機能を表すチートシートが含まれています。

関連する問題