ディメンションという用語は、リージョン内の要素数と同義語である。 特徴ベクトル。 一部のカテゴリ特徴量は低次元です。例:
機能名 | カテゴリ数 | サンプル カテゴリ |
---|---|---|
snowed_today | 2 | True、False |
skill_level | 3 | 初心者、実務担当者、エキスパート |
season | 4 | 冬、春、夏、秋 |
day_of_week | 7 | 月曜日、火曜日、水曜日 |
惑星 | 8 | 水星、金星、地球 |
カテゴリ特徴に含めることのできるカテゴリの数が少ない場合は、 語彙としてエンコードします。語彙エンコーディングでは、モデルは 可能なカテゴリ値を別の特徴として扱うことができます。トレーニング中、 カテゴリごとに異なる重みを学習します
たとえば、自動車の価格に基づいて価格を予測するモデルを作成するとします。
(一部は car_color
という名前のカテゴリ特徴に対して行われます)。
おそらく、赤い車は緑の車よりも価値が高いでしょう。
メーカーが提供している外装色は限られているため、car_color
は
低次元のカテゴリ特徴量にします。
次の図は、語彙(可能な値)を示しています。
car_color
:
演習:直感をチェック
"Red"
は浮動小数点数ではありません。マイページ
"Red"
などの文字列を浮動小数点数に変換する必要があります。
インデックス番号
機械学習モデルで操作できるのは浮動小数点数のみです。 そのため、各文字列を一意のインデックス番号に変換する必要があります。 次の図をご覧ください。
直感をチェック
"Black"
(インデックス番号 5)は有意性が 5 倍になる
"Orange"
(インデックス番号 1)よりも高い値になります。
"Black"
(インデックス番号 5)は
モデルにとっての有意性は "Orange"
の 5 倍
(インデックス番号 1)。
ワンホット エンコーディング
語彙作成の次のステップは、各インデックス番号を ワンホット エンコーディングを使用します。 ワンホット エンコーディングの場合:
- 各カテゴリは、N 個の要素からなるベクトル(配列)で表されます。ここで、N 個
カテゴリ数ですたとえば、
car_color
に 8 個の 表すワンホット ベクトルは 8 つの要素で構成されます。 - ワンホット ベクトルの要素の 1 つだけの値が 1.0 である。 残りの要素はすべて 0.0 になります。
たとえば、次の表は、各トークンのワンホット エンコーディングを
car_color
:
機能 | 赤 | Orange | 青 | 黄 | 緑 | 黒人 | 紫 | 茶色 |
---|---|---|---|---|---|---|---|---|
"赤" | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
"オレンジ" | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
"青" | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
"黄" | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
"緑" | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
"ブラック" | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
"紫" | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
"茶" | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
渡されるのは、文字列やインデックス番号ではなく、ワンホット ベクトルです ベクトルに加算されます。モデルは、入力テキストの各要素に対して ベクトルに分割されます。
次の図は、 語彙表現:
スパース表現
値がほぼ 0(または空)である特徴のことを、
スパースな特徴。多数
car_color
などのカテゴリ特徴量は、スパースな特徴量になる傾向があります。
スパース表現
1.0 の位置を保存することを意味します。
ベクトルに格納されます。たとえば、"Blue"
のワンホット ベクトルは次のようになります。
[0, 0, 1, 0, 0, 0, 0, 0] です。
1
は位置 2 にあるため(カウントを 0 から始める場合)、
上のワンホット ベクトルのスパース表現は次のようになります。
2
スパース表現の方がメモリ消費量が ベクトルに分割されます。重要なのは、モデルをトレーニングする必要があることです。 ワンホット ベクトルです。
カテゴリデータの外れ値
数値データと同様に、カテゴリデータにも外れ値が含まれます。仮説
car_color
には、人気のある色だけでなく、めったに使用されない色も含まれています。
外れ値の色("Mauve"
、"Avocado"
など)。
これらの外れ値に個別のカテゴリを与えるのではなく、
1 つの“キャッチオール”にまとめることができますout-of-vocabulary というカテゴリ
(OOV)。言い換えると、すべての外れ値の色をビニングして 1 つの
作成しますシステムはその外れ値バケットの 1 つの重みを学習します。
高次元カテゴリ特徴量のエンコード
一部のカテゴリ特徴は、次のような多くの次元を持ちます。 それらを次の表に示します。
機能名 | カテゴリ数 | サンプル カテゴリ |
---|---|---|
words_in_english | ~ 500,000 | 「幸せ」、「歩いている」 |
US_postal_codes | 約 42,000 | 「02114」、「90301」 |
last_names_in_Germany | ~ 850,000 | 「Schmidt」、「Schneider」 |
カテゴリの数が多い場合、ワンホット エンコーディングは通常はおすすめしません。 エンベディング(別のモジュールで詳述) エンべディング モジュールは通常、 ずっと良い選択肢ですエンべディングを使用すると、 次の 2 つの点でモデルにメリットがあります。
- 通常、モデルのトレーニングは速くなります。
- 通常、構築されたモデルの方が短時間で予測を推測できます。つまり、 レイテンシが低くなります。
ハッシュ化(ハッシュとも呼ばれます) トリック)は、次元数を減らすためにあまり使われない方法です。