Как рассчитать расстояние Минковского в 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 )

 a
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 )

 a b c
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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.