Les métriques de distance sont un élément clé de divers algorithmes d'apprentissage automatique. Ces métriques de distance sont utilisées à la fois dans l'apprentissage supervisé et non supervisé, généralement pour calculer la similitude entre les points de données.
Une métrique de distance efficace améliore les performances de notre modèle d'apprentissage automatique, soit pour trier soit pour regrouper des tâches.
Disons que nous voulons créer des clusters à l'aide de l'algorithme K-Means Clustering ou Nearest Neighbor pour résoudre un problème de classification ou de régression.. Comment définiriez-vous la similitude entre différentes observations ici? Comment pouvons-nous dire que deux points sont similaires l'un à l'autre?
Cela se produira si leurs caractéristiques sont similaires, vérité? Lorsque nous traçons ces points, seront plus proches les uns des autres au loin.
Donc, nous pouvons calculer la distance entre les points puis définir la similitude entre eux. Voici la question à un million de dollars: Comment calculons-nous cette distance et quelles sont les différentes métriques de distance en apprentissage automatique?
C'est ce à quoi nous entendons répondre dans cet article. nous analyserons 4 types de métriques de distance dans apprentissage automatique et comprendre comment ils fonctionnent dans Piton.
4 types de métriques de distance en apprentissage automatique
- Distance euclidienne
- Distance de Manhattan
- Distance de Minkowski
- Distance de frappe
Commençons par la métrique de distance la plus utilisée: la distance euclidienne.
1. Distance euclidienne
La distance euclidienne représente la distance la plus courte entre deux points.
La plupart des algorithmes d'apprentissage automatique, y compris K-Means, utiliser cette métrique de distance pour mesurer la similitude entre les observations. Disons que nous avons deux points comme indiqué ci-dessous:
Ensuite, la distance euclidienne entre ces deux points A et B sera:
Voici la formule de la distance euclidienne:
Nous utilisons cette formule lorsqu'il s'agit de 2 dimensions. Nous pouvons généraliser cela pour un espace à n dimensions comme:
Où,
- n = nombre de dimensions
- pi, qi = points de données
Codons la distance euclidienne en Piton. Cela vous donnera une meilleure compréhension du fonctionnement de cette métrique de distance..
Nous allons d'abord importer les bibliothèques nécessaires. J'utiliserai la bibliothèque SciPy qui contient des codes pré-écrits pour la plupart des fonctions de distance utilisées en Python:
Ce sont les deux exemples de points que nous utiliserons pour calculer les différentes fonctions de distance. Calculons maintenant la distance euclidienne entre ces deux points:
Voici comment nous pouvons calculer la distance euclidienne entre deux points en Python. Comprenons maintenant la métrique de la deuxième distance, la distance de Manhattan.
2. Distance de Manhattan
La distance de Manhattan est la somme des différences absolues entre les points dans toutes les dimensions.
Nous pouvons représenter la distance de Manhattan comme:
La représentation ci-dessus étant bidimensionnelle, pour calculer la distance de Manhattan, on prendra la somme des distances absolues dans les directions x et y. Ensuite, la distance de Manhattan dans l'espace à deux dimensions est donnée par:
Et la formule généralisée pour un espace à n dimensions est donnée par:
Où,
- n = nombre de dimensions
- pi, qi = points de données
À présent, nous allons calculer la distance de Manhattan entre les deux points:
Notez que La distance de Manhattan est également connue sous le nom de distance de bloc de la ville. SciPy a une fonction appelée Pâté de maison qui renvoie la distance de Manhattan entre deux points.
Regardons maintenant la métrique de distance suivante: Distance de Minkowski.
3. Distance de Minkowski
La distance de Minkowski est la forme généralisée de la distance euclidienne et de Manhattan.
La formule de la distance de Minkowski est donnée par:
Ici, p représente l'ordre de la norme. Calculons la distance de Minkowski de l'ordre 3:
Le paramètre p de la métrique de distance SciPy Minkowski représente l'ordre de la norme. Lors de la commande (p) il est 1, représentera la distance de Manhattan et lorsque l'ordre dans la formule ci-dessus est 2, représentera la distance euclidienne.
Vérifions cela en Python:
Ici, vous pouvez voir que lorsque la commande est 1, Minkowski et Manhattan Distance sont les mêmes. Vérifions aussi la distance euclidienne:
Lorsque la commande est 2, on peut voir que les distances de Minkowski et euclidiennes sont les mêmes.
Jusqu'à maintenant, nous avons couvert les métriques de distance utilisées lorsqu'il s'agit de variables continues ou numériques. Mais Et si nous avions des variables catégorielles? Comment pouvons-nous décider de la similitude entre les variables catégorielles? C'est là que nous pouvons utiliser une autre métrique de distance appelée distance de Hamming.
4. Distance de frappe
La distance de Hamming mesure la similitude entre deux cordes de même longueur. La distance de Hamming entre deux chaînes de même longueur est le nombre de positions où les caractères correspondants sont différents.
Comprenons le concept avec un exemple. Disons que nous avons deux chaînes:
“Euclidienne” Oui “Manhattan”
Puisque la longueur de ces chaînes est égale, on peut calculer la distance de Hamming. Nous irons caractère par caractère et rejoindrons les chaînes. Le premier caractère des deux chaînes (e et m respectivement) c'est diférent. de la même manière, le deuxième caractère des deux chaînes (uya) c'est diférent. etc.
Regarde attentivement: sept caractères sont différents, tandis que deux personnages (les deux derniers caractères) ils sont similaires:
Donc, la distance de Hamming ici sera 7. Notez que plus la distance de Hamming entre deux cordes est grande, plus ces chaînes seront différentes (et vice versa).
Voyons comment calculer la distance de Hamming de deux chaînes en Python. Premier, nous allons définir deux chaînes que nous utiliserons:
Ce sont les deux chaînes “euclidien” Oui “Manhattan” que nous avons également vu dans l'exemple. Calculons maintenant la distance de Hamming entre ces deux cordes:
Comme nous l'avons vu dans l'exemple précédent, la distance de Hamming entre "euclidien" et "manhattan" est 7. Nous avons également vu que la distance de Hamming ne fonctionne que lorsque nous avons des cordes de même longueur.
Voyons ce qui se passe lorsque nous avons des chaînes de différentes longueurs:
Vous pouvez voir que les longueurs des deux chaînes sont différentes. Voyons ce qui se passera lorsque nous essaierons de calculer la distance de Hamming entre ces deux cordes:
Cela renvoie une erreur indiquant que les longueurs des tableaux doivent être les mêmes. Pour cela, La distance de Hamming ne fonctionne que lorsque nous avons des chaînes ou des tableaux de même longueur.
Ce sont quelques-unes des mesures de similarité ou des matrices de distance qui sont généralement utilisées dans l'apprentissage automatique.