Як обчислити відстань мінковського в r (з прикладами)


Відстань Мінковського між двома векторами, A і B , обчислюється наступним чином:

(Σ|a i – b i | p ) 1/p

де i — i елемент кожного вектора, а p — ціле число.

Ця відстань використовується для вимірювання відмінності між будь-якими двома векторами та зазвичай використовується в багатьох різних алгоритмах машинного навчання .

Щоб обчислити відстань Мінковського між векторами в R, ми можемо використати вбудовану функцію dist() із таким синтаксисом:

d ist(x, method=”minkowski”, p)

золото:

  • x: цифрова матриця або кадр даних.
  • p: Потужність для обчислення відстані Мінковського.

Зауважте, що налаштування p = 1 еквівалентне обчисленню Манхеттенської відстані , а налаштування p = 2 еквівалентне обчисленню евклідової відстані .

Цей підручник містить кілька прикладів використання цієї функції на практиці.

Приклад 1: Відстань Мінковського між двома векторами

У наступному коді показано, як використовувати функцію dist() для обчислення відстані Мінковського між двома векторами в R, використовуючи ступінь p = 3:

 #define two vectors
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)

#bind the two vectors into a single matrix
mat <- rbind(a, b)

#calculate Minkowski distance between vectors using a power of 3
dist(mat, method=" minkowski ", p= 3 )

has
b 3.979057

Відстань Мінковського (з використанням степеня p = 3) між цими двома векторами виявляється рівною 3,979057 .

Приклад 2: Відстань Мінковського між векторами в матриці

Щоб обчислити відстань Мінковського між декількома векторами в матриці, ми можемо використати подібний синтаксис у R:

 #create 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)

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

#calculate Minkowski distance between vectors using a power of 3
dist(mat, method = “ minkowski ”, p= 3 )

          ABC
b 3.979057                    
c 8.439010 5.142563          
d 3.332222 6.542133 10.614765

Спосіб інтерпретації цього результату:

  • Відстань Мінковського між векторами a і b дорівнює 3,98 .
  • Відстань Мінковського між векторами a і c дорівнює 8,43 .
  • Відстань Мінковського між векторами a і d дорівнює 3,33 .
  • Відстань Мінковського між векторами b і c дорівнює 5,14 .
  • Відстань Мінковського між векторами b і d дорівнює 6,54 .
  • Відстань Мінковського між векторами c і d дорівнює 10,61 .

Зверніть увагу, що кожен вектор у матриці повинен мати однакову довжину.

Додаткові ресурси

Як обчислити евклідову відстань у R
Як обчислити відстань Хеммінга в R
Як розрахувати відстань від Манхеттена в R
Як розрахувати відстань Махаланобіса в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *