Croisements de caractéristiques: croisement de vecteurs one-hot

Jusqu'à présent, nous nous sommes concentrés sur le croisement de deux caractéristiques à virgule flottante individuelles. En pratique, les modèles de machine learning ne croisent que rarement des caractéristiques continues. Cependant, les modèles de machine learning croisent fréquemment des vecteurs de caractéristiques one-hot. Considérez les croisements de vecteurs de caractéristiques one-hot comme des conjonctions logiques. Par exemple, supposons que nous ayons deux caractéristiques: le pays et la langue. Un encodage one-hot de chaque génère des vecteurs avec des caractéristiques binaires qui peuvent être interprétées comme country=USA, country=France ou language=English, language=Spanish. Ensuite, si vous effectuez un croisement de caractéristiques de ces encodages one-hot, vous obtenez des caractéristiques binaires qui peuvent être interprétées comme des conjonctions logiques, telles que:

  country:usa AND language:spanish

Prenons un autre exemple : supposons que vous binez la latitude et la longitude, ce qui génère des vecteurs de caractéristiques one-hot distincts. Par exemple, une latitude et une longitude données peuvent être représentées comme suit:

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

Supposons que vous créez un croisement de ces deux vecteurs de caractéristiques:

  binned_latitude X binned_longitude

Ce croisement de caractéristiques est un vecteur one-hot de 25 éléments (24 zéros et 1 un). Le seul 1 au croisement identifie une conjonction particulière de latitude et de longitude. Votre modèle peut ensuite apprendre des associations particulières concernant cette conjonction.

Supposons que nous binnions la latitude et la longitude de façon beaucoup plus approximative:

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

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

La création d'un croisement de caractéristiques générales correspond à des caractéristiques synthétiques ayant les significations suivantes:

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
]

Supposons maintenant que notre modèle doive prédire la satisfaction des propriétaires de chiens à l'aide de deux caractéristiques:

  • Type de comportement (aboiements, pleurs, réchauffement, etc.)
  • Heure de la journée

Si nous créons un croisement à partir de ces deux caractéristiques:

  [behavior type X time of day]

on obtiendra alors beaucoup plus de capacités de prédiction que les deux seules. Par exemple, si un chien pleure (heureusement) à 17h00 lorsque le propriétaire rentre du travail, il est probable qu'il s'agisse d'un bon indicateur de satisfaction. Pleurer (peut-être) à 3h du matin lorsque le propriétaire dort profondément est probablement un indicateur fiable de la satisfaction du propriétaire.

Les apprenants linéaires s'adaptent bien aux données volumineuses. L'utilisation de croisements de caractéristiques sur des ensembles de données volumineux est une stratégie efficace pour apprendre des modèles très complexes. Les réseaux de neurones fournissent une autre stratégie.