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

Jusqu'à présent, nous nous sommes concentrés sur le croisement de deux caractéristiques en virgule flottante. Dans la pratique, les modèles de Machine Learning croisent rarement des caractéristiques continues. En revanche, ils croisent fréquemment des vecteurs de caractéristiques one-hot. Vous devez considérer les croisements de vecteurs de caractéristiques one-hot comme des conjonctions logiques. Prenons, par exemple, deux caractéristiques : le pays et la langue. Un encodage one-hot de chaque caractéristique 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. Par exemple :

  country:usa AND language:spanish

Autre exemple : supposons que vous effectuiez le binning de la latitude et de la longitude, générant ainsi des vecteurs de caractéristiques à cinq éléments one-hot distincts. Une longitude et une latitude données peuvent, par exemple, être représentées comme suit :

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

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

  binned_latitude X binned_longitude

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

Supposons maintenant que l'on effectue un binning beaucoup plus grossier de la latitude et de la longitude :

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 de ces classes approximatives génère 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 à présent que notre modèle doive prédire le degré de satisfaction de propriétaires de chiens sur la base de deux caractéristiques :

  • Type de comportement (aboiements, tendresse, 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 obtient une capacité de prédiction beaucoup plus vaste qu'avec une caractéristique prise isolément. Par exemple, le fait qu'un chien aboie (pour exprimer sa joie) à 17h00 lorsque son maître rentre du travail sera sans doute un prédicteur de satisfaction très positif. En revanche, les hurlements d'un chien à trois heures du matin constitueront probablement un prédicteur de satisfaction particulièrement négatif.

Les systèmes d'apprentissage linéaires s'adaptent bien aux données volumineuses. Appliquer des croisements de caractéristiques à des ensembles de données volumineux s'avère être une stratégie efficace pour entraîner des modèles très complexes. Les réseaux de neurones constituent une autre stratégie.

Envoyer des commentaires concernant…

Cours d'initiation au machine learning