Канберрское расстояние между двумя векторами, A и B, рассчитывается как:
Канберрское расстояние = Σ |A i -B i | / (|А я | + |В я |)
куда:
- A i : i -е значение в векторе A
- B i : i -е значение в векторе B
Например, предположим, что у нас есть следующие два вектора:
- А = [2, 4, 4, 6]
- В = [5, 5, 7, 8]
Мы рассчитали бы Канберрское расстояние между A и B как:
- Канберрское расстояние = |2-5|/(2+5) + |4-5|/(4+5) + |4-7|/(4+7) + |6-8|/(6+8)
- Канберрское расстояние = 3/7 + 1/9 + 3/11 + 2/14
- Канберрское расстояние = 0,95527
Канберрское расстояние между этими двумя векторами равно 0,95527 .
В следующем примере показано, как рассчитать канберрское расстояние между этими точными двумя векторами в Python.
Пример: расчет расстояния до Канберры в Python
Во-первых, давайте создадим массив NumPy для хранения каждого из наших векторов:
import numpy as np
#define two arrays
array1 = np.array([2, 4, 4, 6])
array2 = np.array([5, 5, 7, 8])
Затем мы можем использовать функцию canberra() из пакета SciPy в Python, чтобы вычислить канберрское расстояние между двумя векторами:
from scipy. spatial import distance
#calculate Canberra distance between the arrays
distance. canberra (array1, array2)
0.9552669552
Канберрское расстояние между двумя векторами равно 0,95527 .
Обратите внимание, что это значение совпадает с тем, которое мы рассчитали ранее вручную.
Примечание.Полную документацию по функции canberra() из пакета SciPy можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как рассчитать другие распространенные метрики расстояния в Python:
Как рассчитать евклидово расстояние в Python
Как рассчитать манхэттенское расстояние в Python
Как рассчитать расстояние Хэмминга в Python
Как рассчитать расстояние Махаланобиса в Python
Как рассчитать расстояние Левенштейна в Python