Матрица парных расстояний — это двумерная матрица, элементы которой имеют значение расстояний, взятых попарно, отсюда и название «парная матрица». Это легко понять на следующем примере.
Рассмотрим множество элементов S1-{(2,3), (0,9), (4,5)}.
Если мы вычислим его матрицу расстояний, мы получим,
Значения этой Матрицы имеют попарное евклидово расстояние между элементами. Первая строка этой матрицы содержит расстояние между A1 и остальными элементами, т.е. A2 и A3, включая также A1.
Мы также можем выполнять попарные вычисления расстояний, используя язык программирования R ! Мы используем функцию dist() в языке программирования R. Мы можем найти манхэттенское или евклидово попарное расстояние.
R
# Make three vectors
A1<-
c
(2,3)
A2<-
c
(0,9)
A3<-
c
(4,5)
#making a single matrix
CooR <-
rbind
(A1, A2, A3)
dist
(CooR, method =
"euclidean"
,
diag =
TRUE
, upper =
TRUE
)
Выход:
A1 A2 A3 A1 0.000000 6.324555 2.828427 A2 6.324555 0.000000 5.656854 A3 2.828427 5.656854 0.000000
Это наша матрица попарных расстояний для входов {(2,3),(0,9),(4,5)}. Давайте попробуем другой пример, но на этот раз с использованием манхэттенского расстояния.
R
# R program to calculate a pairwise distance matrix
# Make three vectors
A1<-
c
(1,1,7)
A2<-
c
(2,9,5)
A3<-
c
(9,6,3)
#making a single matrix
CooR <-
rbind
(A1, A2, A3)
dist
(CooR, method =
"manhattan"
,
diag =
TRUE
, upper =
TRUE
)
Выход:
A1 A2 A3 A1 0 11 17 A2 11 0 12 A3 17 12 0
Давайте возьмем другой пример для лучшего понимания, мы будем вычислять попарное евклидово расстояние.
R
# Making vectors to use for matrix
A1 <-
c
(0, 0)
B1 <-
c
(0.85, 0)
C1 <-
c
(0.85, 0.45)
D1 <-
c
(0, 0.45)
#making a single matrix
CooR <-
rbind
(A1, B1, C1, D1)
dist
(CooR, method=
"euclidean"
, diag=
TRUE
,
upper=
FALSE
)
Выход:
Попарная матрица расстояний только с нижней треугольной частью