Как вычислить расстояние минковского в r (с примерами)
Расстояние Минковского между двумя векторами A и B рассчитывается следующим образом:
(Σ|a i – b i | p ) 1/p
где i — i- й элемент каждого вектора, а p — целое число.
Это расстояние используется для измерения различия между любыми двумя векторами и обычно используется во многих различных алгоритмах машинного обучения .
Чтобы вычислить расстояние Минковского между векторами в R, мы можем использовать встроенную функцию dist() со следующим синтаксисом:
d ist(x, метод=”Минковский”, 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