Привет !! Добро пожаловать, ребята. Сегодня я расскажу о различных типах используемых расстояний и о том, как они рассчитываются в машинном обучении (ML).

Вот типы дистанций, которые я расскажу в этом блоге:

  1. Евклидово расстояние.
  2. Манхэттенское расстояние.
  3. Расстояния Минковского.
  4. L1, L2 и L-Max нормы.
  5. Расстояние Хэмминга.
  6. Косинусное расстояние и сходство.

Итак, приступим……

Евклидово расстояние :

Евклидово расстояние вычисляет расстояние между двумя вещественными векторами.

Скорее всего, вы будете использовать евклидово расстояние при вычислении расстояния между двумя строками данных, которые имеют числовые значения, такие как значения с плавающей запятой или целые числа.

Если столбцы имеют значения с разными масштабами, перед вычислением евклидова расстояния обычно нормализуют или стандартизируют числовые значения во всех столбцах. В противном случае столбцы с большими значениями будут доминировать в показателе расстояния.

Евклидово расстояние рассчитывается как квадратный корень из суммы квадратов разностей между двумя векторами.

  • EuclideanDistance = sqrt (сумма от i до N (v1[i] — v2[i])²)

Если вычисление расстояния должно выполняться тысячи или миллионы раз, обычно удаляют операцию извлечения квадратного корня, чтобы ускорить вычисление. Полученные оценки будут иметь те же относительные пропорции после этой модификации и по-прежнему могут эффективно использоваться в алгоритме машинного обучения для поиска наиболее похожих примеров.

  • Евклидово расстояние = сумма от i до N (v1[i] — v2[i])²

Евклидово часто является расстоянием «по умолчанию», используемым, например, в K-ближайших соседях (классификация) или K-средних (кластеризация) для поиска «k ближайших точек» конкретной точки выборки. Другим ярким примером является иерархическая кластеризация, агломеративная кластеризация (полная и одиночная связь), где требуется найти расстояние между кластерами.

Манхэттен Расстояние:

Манхэттенское расстояние, также известное как расстояние такси, также используется для расчета расстояния между двумя векторами с действительными значениями.

Возможно, это более полезно для векторов, описывающих объекты на единой сетке, например, шахматную доску или городские кварталы. Название такси для меры относится к интуитивному пониманию того, что вычисляет мера: кратчайший путь, по которому такси может пройти между городскими кварталами (координаты в сетке).

Возможно, имеет смысл вычислить манхэттенское расстояние вместо евклидова расстояния для двух векторов в целочисленном пространстве признаков.

Манхэттенское расстояние рассчитывается как сумма абсолютных разностей между двумя векторами.

  • Манхэттенское расстояние = сумма от i до N sum |v1[i] — v2[i]|

Манхэттенское расстояние связано с нормой вектора L1 и суммарной абсолютной ошибкой и метрикой средней абсолютной ошибки.

Использование манхэттенского расстояния во многом зависит от типа системы координат, которую использует ваш набор данных. В то время как евклидово расстояние дает кратчайшее или минимальное расстояние между двумя точками, у Манхэттена есть определенные реализации.

Например, если бы мы использовали набор данных Chess, использование манхэттенского расстояния было бы более подходящим, чем евклидово расстояние. Другое использование может быть, когда вам интересно узнать расстояние между домами, которые находятся в нескольких кварталах друг от друга.

Кроме того, вы можете рассмотреть Манхэттенское расстояние, если входные переменные не похожи по типу (например, возраст, пол, рост и т. д.). Из-за проклятия размерности мы знаем, что евклидово расстояние становится плохим выбором по мере увеличения количества измерений.

Итак, в двух словах: манхэттенское расстояние вообще работает только в том случае, если точки расположены в виде сетки и задача, над которой мы работаем, отдает больший приоритет расстоянию между точками только вместе с сетками, а не геометрическому расстоянию.

Расстояния Минковского:

Расстояние Минковского также вычисляет расстояние между двумя вещественными векторами.

Это обобщение евклидовых и манхэттенских мер расстояния и добавлен параметр, называемый «порядок» или «p», который позволяет вычислять различные меры расстояния.

Мера расстояния Минковского рассчитывается следующим образом:

  • EuclideanDistance = (сумма от i до N (abs(v1[i] — v2[i]))^p)^(1/p)

Где «p» — параметр порядка.

Когда p установлено равным 1, расчет такой же, как и для манхэттенского расстояния. Когда p установлено равным 2, оно совпадает с евклидовым расстоянием.

  • p=1: манхэттенское расстояние.
  • p=2: евклидово расстояние.
  • p = ∞, расстояние Чебычева (не обсуждается в этом блоге)

Промежуточные значения обеспечивают контролируемый баланс между двумя показателями.

Minkowski_distance обычно используется при реализации алгоритма машинного обучения, который использует меры расстояния, поскольку он дает контроль над типом меры расстояния, используемой для векторов с действительным знаком, с помощью гиперпараметра «p», который можно настроить.

L1 норма:

Длина вектора может быть рассчитана с использованием нормы L1, где 1 — это верхний индекс L, например. Л¹.

Обозначение L1-нормы вектора: ||v||1, где 1 — индекс. Таким образом, эту длину иногда называют нормой такси или нормой Манхэттена.

l1(v) = ||v||1

Норма L1 вычисляется как сумма абсолютных значений вектора, где абсолютное значение скаляра использует обозначение |a1|. По сути, норма — это вычисление манхэттенского расстояния от начала координат векторного пространства.

||v||1 = |a1| + |a2| + |a3|

Норма L1 вектора может быть вычислена в NumPy с помощью функции norm() с параметром для указания порядка нормы.

L2 норма:

Длина вектора может быть рассчитана с использованием нормы L2, где 2 — это верхний индекс L, например. л².

Обозначение нормы L2 вектора ||v||2, где 2 — индекс.

l2(v) = ||v||2