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
où 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