Jak korzystać z funkcji dist w r (z przykładami)


Funkcji dist() w języku R można użyć do obliczenia macierzy odległości, która wyświetla odległości między wierszami w macierzy lub ramce danych.

Ta funkcja wykorzystuje następującą podstawową składnię:

dist(x, metoda=”euklidesowa”)

Złoto:

  • x: nazwa macierzy lub bloku danych.
  • metoda: Stosowany pomiar odległości. Wartość domyślna to „Euklidesowa”, ale dostępne opcje obejmują „maksymalny”, „manhattan”, „canberra”, „binarny” lub „minkowski”.

Poniższe przykłady pokazują, jak w praktyce wykorzystać tę funkcję z następującą ramką danych:

 #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
mast

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

Przykład 1: Użyj dist() do obliczenia odległości euklidesowej

Odległość euklidesową między dwoma wektorami A i B oblicza się w następujący sposób:

Odległość euklidesowa = √ Σ(A i -B i ) 2

Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje odległość euklidesową pomiędzy każdym wierszem macierzy w R:

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

          ABC
b4.795832                    
c 10.148892 6.000000          
d 3.872983 8.124038 13.190906

Oto jak zinterpretować wynik:

  • Odległość euklidesowa między linią a i b wynosi 4,795832 .
  • Odległość euklidesowa między linią a i linią c wynosi 10,148892 .
  • Odległość euklidesowa między linią a i linią d wynosi 3,872983 .
  • Odległość euklidesowa pomiędzy linią b i linią c wynosi 6,000000 .
  • Odległość euklidesowa między linią b i linią d wynosi 8,124038 .
  • Odległość euklidesowa pomiędzy linią c i linią d wynosi 13,190906 .

Przykład 2: Użyj dist() do obliczenia maksymalnej odległości

Maksymalna odległość między dwoma wektorami A i B jest obliczana jako maksymalna różnica między wszystkimi elementami parami.

Poniższy kod pokazuje, jak obliczyć macierz odległości, która wyświetla maksymalną odległość między każdym wierszem macierzy w R:

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

  ABC
b 3    
c 7 4  
d 3 5 8

Przykład 3: Użyj dist() do obliczenia odległości od Canberry

Odległość Canberry pomiędzy dwoma wektorami A i B oblicza się w następujący sposób:

Odległość od Canberry = Σ |A i -B i | / | sztuczna inteligencja | + | Bje |

Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje odległość Canberry pomiędzy każdym wierszem macierzy w R:

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

          ABC
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

Przykład 4: Użyj dist() do obliczenia odległości binarnej

Odległość binarna między dwoma wektorami A i B jest obliczana jako proporcja elementów wspólnych dla tych dwóch wektorów.

Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje binarną odległość pomiędzy każdym wierszem macierzy w R:

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

  ABC
b 0    
c 0 0  
d 0 0 0

Przykład 5: Użyj dist() do obliczenia odległości Minkowskiego

Odległość Minkowskiego pomiędzy dwoma wektorami A i B oblicza się w następujący sposób:

Odległość Minkowskiego = (Σ|a i – b i | p ) 1/p

gdzie i jest i- tym elementem każdego wektora, a p jest liczbą całkowitą.

Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje odległość Minkowskiego (stosując p=3) pomiędzy każdym wierszem macierzy w R:

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

          ABC
b 3.979057                    
c 8.439010 5.142563          
d 3.332222 6.542133 10.614765

Dodatkowe zasoby

Jak obliczyć podobieństwo Jaccarda w R
Jak obliczyć podobieństwo cosinus w R
Jak obliczyć iloczyn skalarny w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *