Comment utiliser la fonction dist dans R (avec exemples)



La fonction dist() dans R peut être utilisée pour calculer une matrice de distance, qui affiche les distances entre les lignes d’une matrice ou d’un bloc de données.

Cette fonction utilise la syntaxe de base suivante :

dist(x, méthode=”euclidien”)

où:

  • x : le nom de la matrice ou du bloc de données.
  • méthode : La mesure de distance à utiliser. La valeur par défaut est « euclidienne », mais les options incluent « maximum », « manhattan », « canberra », « binaire » ou « minkowski ».

Les exemples suivants montrent comment utiliser cette fonction en pratique avec le bloc de données suivant :

#define four vectors
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

#row bind four vectors into matrix
mat <- rbind(a, b, c, d)

#view matrix
mat

  [,1] [,2] [,3] [,4]
a    2    4    4    6
b    5    5    7    8
c    9    9    9    8
d    1    2    3    3

Exemple 1 : utilisez dist() pour calculer la distance euclidienne

La distance euclidienne entre deux vecteurs A et B est calculée comme suit :

Distance euclidienne = √ Σ(A i -B i ) 2

Le code suivant montre comment calculer une matrice de distance qui montre la distance euclidienne entre chaque ligne d’une matrice dans R :

#calculate Euclidean distance between each row in matrix
dist(mat)

          a         b         c
b  4.795832                    
c 10.148892  6.000000          
d  3.872983  8.124038 13.190906

Voici comment interpréter le résultat :

  • La distance euclidienne entre la ligne a et la ligne b est 4,795832 .
  • La distance euclidienne entre la ligne a et la ligne c est 10,148892 .
  • La distance euclidienne entre la ligne a et la ligne d est 3,872983 .
  • La distance euclidienne entre la ligne b et la ligne c est 6,000000 .
  • La distance euclidienne entre la ligne b et la ligne d est 8,124038 .
  • La distance euclidienne entre la ligne c et la ligne d est 13,190906 .

Exemple 2 : utilisez dist() pour calculer la distance maximale

La distance maximale entre deux vecteurs, A et B, est calculée comme la différence maximale entre tous les éléments par paire.

Le code suivant montre comment calculer une matrice de distance qui affiche la distance maximale entre chaque ligne d’une matrice dans R :

#calculate Maximum distance between each row in matrix
dist(mat, method="maximum")

  a b c
b 3    
c 7 4  
d 3 5 8

Exemple 3 : utilisez dist() pour calculer la distance de Canberra

La distance de Canberra entre deux vecteurs A et B est calculée comme suit :

Distance de Canberra = Σ |A i -B i | / | UNE je | + | Bje |

Le code suivant montre comment calculer une matrice de distance qui montre la distance de Canberra entre chaque ligne d’une matrice dans R :

#calculate Canberra distance between each row in matrix
dist(mat, method="canberra")

          a         b         c
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

Exemple 4 : utilisez dist() pour calculer la distance binaire

La distance binaire entre deux vecteurs, A et B, est calculée comme la proportion d’éléments que les deux vecteurs partagent.

Le code suivant montre comment calculer une matrice de distance qui montre la distance binaire entre chaque ligne d’une matrice dans R :

#calculate Binary distance between each row in matrix
dist(mat, method="binary")

  a b c
b 0    
c 0 0  
d 0 0 0

Exemple 5 : utilisez dist() pour calculer la distance de Minkowski

La distance de Minkowski entre deux vecteurs A et B est calculée comme suit :

Distance de Minkowski = (Σ|a i – b i | p ) 1/p

i est le i ème élément de chaque vecteur et p est un nombre entier.

Le code suivant montre comment calculer une matrice de distance qui montre la distance de Minkowski (en utilisant p=3) entre chaque ligne d’une matrice dans R :

#calculate Minkowski distance between each row in matrix
dist(mat, method="minkowski", p=3)

          a         b         c
b  3.979057                    
c  8.439010  5.142563          
d  3.332222  6.542133 10.614765

Ressources additionnelles

Comment calculer la similarité Jaccard dans R
Comment calculer la similarité cosinus dans R
Comment calculer le produit scalaire dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *