特徴クロス: ワンホット ベクターの交差

これまでは、2 つの個別の浮動小数点特徴を特徴量で関連付けることに重点を置いてきました。実際には、機械学習モデルが連続的な特徴を横断することはほとんどありません。ただし、機械学習モデルは多くの場合、ワンホットな特徴ベクトルを横断します。ワンホットな特徴ベクトルの特徴量クロスは論理的な接続詞として考えることができます。たとえば、国と言語の 2 つの機能があるとします。それぞれのワンホット エンコーディングにより、country=USA, country=France または language=English, language=Spanish として解釈できるバイナリ特徴を持つベクトルが生成されます。その後、このようなワンホット エンコーディングの特徴クロスを実行すると、次のような論理接続として解釈可能なバイナリ特徴が得られます。

  country:usa AND language:spanish

別の例として、緯度と経度をビン処理し、1 ホットの 5 要素の特徴ベクトルを別々に生成するとします。たとえば、特定の緯度と経度は、次のように表すことができます。

  binned_latitude = [0, 0, 0, 1, 0]
  binned_longitude = [0, 1, 0, 0, 0]

次の 2 つの特徴ベクトルの特徴クロスを作成したとします。

  binned_latitude X binned_longitude

この特徴クロスは、25 要素のワンホット ベクトル(ゼロは 24 個、ゼロは 1 個)です。十字に示される単一の 1 は、緯度と経度の特定の結合を示します。すると、モデルはその結合に関する特定の関連付けを学習できます。

次のように、緯度と経度を大まかに分類するとします。

binned_latitude(lat) = [
  0  < lat <= 10
  10 < lat <= 20
  20 < lat <= 30
]

binned_longitude(lon) = [
  0  < lon <= 15
  15 < lon <= 30
]

これらの粗いビンの特徴クロスを作成すると、次の意味を持つ合成特徴になります。

binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]

ここで、次の 2 つの機能に基づいて、犬の飼い主に対する満足度をモデルで予測する必要があるとします。

  • 行動タイプ(吠える、泣く、引っ張るなど)
  • 時間帯

両方の特徴から特徴クロスを構築する場合:

  [behavior type X time of day]

その結果、いずれかの機能単独の場合よりも、はるかに予測能力が高まります。たとえば、午後 5 時から飼い主が仕事から帰ったときに犬が泣きうるような場合には、飼い主の満足度において非常に良い予測因子となるでしょう。所有者が熟睡していたときの午前 3 時に泣きながら(おそらく、ひもで)泣いていることは、オーナーの満足度の強い否定的予測であると考えられます。

線形学習者は膨大なデータに適しています。膨大なデータセットに対して特徴量クロスを使用することは、非常に複雑なモデルを学習するための効率的な戦略の一つです。ニューラル ネットワークを使用して、別の戦略を実現できます。