неевклидовых расстояний
Расстояние между двумя неупорядоченными массивами можно перефразировать как расстояние между наборами.
Быстрый поиск показывает, что существует несколько расстояний, представляющих сходство между наборами, таких как
Jaccard расстояние
d (a, b) = | a inter b |/ | объединение b |
метрика максимальной разности
d (a, b) = 1 - | a inter b |/ max (| a |, | b |)
На бумаге больше расстояний (например) Расстояния между наборами по общности множеств
по-прежнему евклидово расстояние
Вы все равно можете заставить его:
Получить весь свой манг в качестве словаря V
, скажем, размер n
. Рассмотрим набор R^n
.
Строка вашей таблицы может быть представлена в виде вектора v
из R^n
: если строка содержит слово i
, в противном случае укажите v[i] = 1
, v[i]=0
Наконец, евклидово расстояние может быть тривиально применено к векторам одинаковой длины.
Таким образом, расстояние будет равно
d(a,b) = || v_b - v_a ||_2 = sqrt( (v_b[0] - v_a[0])^2 + ... + (v_b[n-1] - v_a[n-1)^2)
Каждый квадрат равен 1
тогда и только v_b[i]!=v_a[i]
то есть вы хотите посчитать элементы в a
, а не в b
U b not in a
, то есть симметричную разность a
и b
.
Таким образом, вы можете переписать ваше расстояние:
d(a,b) = sqrt(|a Δ b|)