機械学習のためにカテゴリ機能を数値にエンコードする


14

ニューラルネットワークなどの多くの機械学習アルゴリズムは、数値を扱うことを想定しています。そのため、カテゴリデータがある場合は、変換する必要があります。カテゴリ別の意味は、たとえば:

自動車ブランド:アウディ、BMW、シボレー...ユーザーID:1、25、26、28 ...

ユーザーIDは数字ですが、単なるラベルであり、年齢や金額などの継続性の観点からは意味がありません。

そのため、基本的なアプローチでは、バイナリベクトルを使用してカテゴリをエンコードするようです。

アウディ:1、0、0 ... BMW:0、1、0 ...シボレー:0、0、1 ...

カテゴリがほとんどない場合でも問題ありませんが、それ以上は少し非効率的に見えます。たとえば、10 000個のユーザーIDをエンコードする場合、10,000個の機能になります。

質問は、より良い方法はありますか?たぶん、確率を伴うものですか?


3
予測モデルにユーザーIDを含めるのはなぜですか?説明するようにダミー変数コーディングを使用するときに、カーディナリティが希望よりも大きい他のカテゴリ変数については、レベルを折りたたむために、最初に唯一の予測子として決定ツリーを介してそれらを実行します。「まれな」レベルなどをグループ化することで再
ビンニングする

これは、特定の個人に特有の効果に関心がある統計モデルのランダム効果のように、面白そうです。たとえば、同じ個人を何度も見かけ、その特定の個人が何をするかを予測したい場合など、役に立つ状況を想像できます。可能であれば、あなたの計画についてもっと共有してください。また、マルチレベルモデリングを検討することもできますが、従来は機械学習ではなく推論設定で使用されていました。
アンZ.

MLコンテストについて読んだことを覚えています。スマートリサーチャーの中には、データ内のユーザーIDがユーザーアカウントの作成時に与えられたことを検出したものがあります。そのため、難読化されたタイムスタンプが明らかになりました(応答の予測にプラスの影響を与えています)。そのような場合と、Anne(推奨システム)が言及した場合のほかに、userIDは含めません。
ステフェン

Anne-ランダム効果モデルは実際には個人に関心がないのではありませんか?したがって、彼らは母集団からのサンプルと見なされますか?
B_Miner

学習問題が裕福/裕福でないバイナリカテゴリを予測することである場合、なぜ特定のユーザーの自動車のブランドに機能を持たせるのが理にかなっていないのかわかりません。個人のソーシャルネットワークがわかっている場合は、ユーザーIDを使用できます。たとえば、ユーザーXの友人が裕福である傾向があることを示します。この考え方に何か問題はありますか?
-Vladtn

回答:


6

ユーザーIDは常にワードバッグとして扱うことができます:ほとんどのテキスト分類子は、データがスパースの場合に数十万のディメンションを処理できます(たとえば、圧縮スパース行を使用する場合、メモリに明示的に保存する必要のない多くのゼロデータマトリックスの表現)。

ただし、質問は次のとおりです。ユーザーIDを機能として扱うことは、特定の問題について理にかなっていますか?関係データを非正規化し、IDの代わりにユーザー機能(年齢、場所、オンラインニックネームの文字、トランザクション履歴など)を使用する方が意味がありませんか?

また、未加工のユーザーベクトルのクラスタリングを実行し、ユーザーIDの代わりに、アクティブ化された機能として上位N個の最も近いセンターIDを使用することもできます。


これは一般的な質問ですが、ほとんどのユーザーはユーザーIDの問題に集中しているので、ここでそれらを使用する理由を説明します。:GrockitについてKaggleの競技の一つ、で見てみましょうkaggle.com/c/WhatDoYouKnow。目標は、ユーザーが質問に正しく答えるかどうかを予測することです。私の意見では、レコメンダーシステムと同様の問題です。映画の代わりに質問が表示され、評価の代わりに正解/不正解、さらにその他のデータが表示されます。タイムスタンプが利用可能です:)
Nucular

1
その場合、ユーザーは独立していると仮定し、自分の履歴のみでトレーニングされたユーザーごとに1つの分類子を構築できます。
-ogrisel

1

クラスをニューラルネットワークにエンコードしようとする場合、おそらく等方向エンコーディングが探しています。他の投稿で参照されている「1 of n」エンコーディングよりもうまく機能する傾向があります。参考として、http//www.heatonresearch.com/wiki/Equilateralをお勧めします


これは、OPが求めている入力値のカテゴリエンコーディングではなく、出力値のエンコーディングに関連しているようです。
アレックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.