Créer une mesure de similarité manuelle

Pour calculer la similarité entre deux exemples, vous devez combiner toutes les données de caractéristiques de ces deux exemples en une seule valeur numérique.

Prenons l'exemple d'un ensemble de données sur les chaussures ne comportant qu'une seule caractéristique: la pointure. Vous pouvez quantifier le degré de similitude entre deux chaussures en calculant la différence entre leurs tailles. Plus la différence numérique entre les tailles est faible, plus la similitude est élevée entre les chaussures. Une telle mesure artisanale de la similarité est appelée mesure de similarité manuelle.

Comment faire pour trouver des similitudes entre les chaussures en utilisant à la fois la taille et la couleur ? La couleur est constituée de données catégorielles. Elle est plus difficile à combiner avec les données numériques relatives aux tailles. Nous verrons que lorsque les données deviennent plus complexes, il devient plus difficile de créer manuellement une mesure de similarité. Lorsque vos données deviennent suffisamment complexes, vous ne pouvez pas créer de mesure manuelle. C'est alors que vous passez à une mesure de similarité supervisée, où un modèle de machine learning supervisé calcule la similarité.

Nous allons laisser la mesure de similarité supervisée plus tard et nous concentrer ici sur la mesure manuelle. Pour l'instant, n'oubliez pas que vous passez à une mesure de similarité supervisée lorsque vous rencontrez des difficultés pour créer une mesure de similarité manuelle.

Pour comprendre le fonctionnement d'une mesure manuelle de similarité, examinons notre exemple de chaussures. Supposons que le modèle comporte deux caractéristiques: la taille des chaussures et les données sur le prix des chaussures. Les deux caractéristiques étant numériques, vous pouvez les combiner en un seul nombre représentant la similarité comme suit.

  • Taille (s): la pointure est probablement une distribution gaussienne. Confirmez. Ensuite, normalisez les données.
  • Prix (p): les données sont probablement une distribution de Poisson. Confirmez. Si vous avez suffisamment de données, convertissez-les en quantiles et effectuez un scaling à la valeur \([0,1]\).
  • Combinez les données à l'aide de la racine carrée de l'erreur quadratique moyenne (RMSE). Ici, la similarité est \(\sqrt{\frac{s^2+p^2}{2}}\).

Pour un exemple simplifié, calculons la similarité entre deux chaussures avec des tailles américaines 8 et 11, et les prix 120 et 150. Comme nous ne disposons pas d'assez de données pour interpréter la répartition, nous allons simplement faire évoluer les données sans normaliser ni utiliser de quantiles.

ActionMéthode
Ajuster la taille Prenons une pointure maximale de 20. Divisez 8 et 11 par le nombre maximal de 20 pour obtenir 0,4 et 0,55.
Adaptez le prix. Divisez 120 et 150 par le prix maximal de 150 pour obtenir 0,8 et 1.
Trouvez la différence de taille. \(0.55 - 0.4 = 0.15\)
Identifiez la différence de prix. \(1 - 0.8 = 0.2\)
Trouvez la RMSE. \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

Intuitivement, la similarité mesurée doit augmenter lorsque les données de caractéristiques deviennent similaires. Au lieu de cela, la similarité mesurée diminue. Faites en sorte que la similarité mesurée corresponde à votre intuition en la soustrayant de 1.

\[\text{Similarity} = 1 - 0.17 = 0.83\]

En général, vous pouvez préparer des données numériques comme décrit dans Préparer des données, puis combiner les données à l'aide de la distance euclidienne.

Et si vous disposez de données catégorielles ? Les données catégorielles peuvent être:

  • Valeur unique (univalent), comme la couleur d'une voiture ("blanc" ou "bleu", mais jamais les deux)
  • Valeurs multiples (multivalentes), comme le genre d'un film (il peut s'agir d'une seule action et d'une simple comédie, ou simplement d'une simple action)

Si les données univalentes correspondent, la similarité est de 1. Sinon, elle est égale à 0. Les données multivalentes sont plus difficiles à traiter. Par exemple, les genres cinématographiques peuvent représenter un défi. Pour gérer ce problème, supposons que les genres des films soient attribués à un ensemble fixe de genres. Calculez la similarité à l'aide du ratio de valeurs courantes, appelé similarité Jacquard.

Exemples :

  • ["comedy", "action"] et ["comedy", "action"] = 1
  • ["comédie", "action"] et ["action"] = 1⁄2
  • ["comédie", "action"] et ["action", "drame"] = 1⁄3
  • ["comédie", "action"] et ["non-fiction", "biographie"] = 0

Le tableau suivant fournit d'autres exemples de traitement des données catégorielles.

Exemples
Code postal Les codes postaux représentant des zones proches les unes des autres doivent avoir une similitude plus élevée. Pour encoder les informations requises pour calculer avec précision cette similarité, vous pouvez convertir les codes postaux en latitude et en longitude. Pour une paire de codes postaux, calculez séparément la différence entre leur latitude et leur longitude. Ajoutez ensuite les différences pour obtenir une valeur numérique unique.
Couleur Supposons que vous ayez des données de couleur sous forme de texte. Convertissez les valeurs textuelles en valeurs RVB numériques. Vous pouvez à présent voir la différence de valeurs en rouge, vert et bleu pour deux couleurs, puis combiner les différences en une valeur numérique à l'aide de la distance euclidienne.

En général, votre mesure de similarité doit correspondre directement à la similarité réelle. Si ce n'est pas le cas, cela signifie que les informations nécessaires ne sont pas encodées. L'exemple précédent a converti des codes postaux en latitude et en longitude, car les codes postaux eux-mêmes n'encodeaient pas les informations nécessaires.

Avant de créer votre mesure de similarité, traitez vos données avec soin. Bien que les exemples de cette page s'appuient sur un petit ensemble de données simple, la plupart des ensembles de données réels sont beaucoup plus grands et complexes. N'oubliez pas que les quantiles constituent un bon choix par défaut pour le traitement des données numériques.