Метрики расстояния между векторами

Важность дистанционных метрик в моделировании машинного обучения

Дата публикации Jan 13, 2019

Метрики расстояния между векторами

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

Содержание
  1. Введение
  2. Функция расстояния
  3. Метрики расстояния
  4. Минковский Расстояние:
  5. Расстояние косинуса:
  6. Махаланобис Расстояние:
  7. Моделирование машинного обучения и дистанционные метрики
  8. 1. Классификация
  9. 2. Кластеризация
  10. 3. Обработка естественного языка
  11. Вывод
  12. Евклидова, L1 и Чебышёва — 3 основные метрики, которые пригодятся в Data Science
  13. Евклидово расстояние (расстояние по прямой)
  14. Расстояние L1 (расстояние городских кварталов)
  15. Расстояние Чебышёва (метрика шахматной доски)
  16. Расстояние Махаланобиса
  17. Содержание
  18. Основной смысл использования расстояния Махаланобиса
  19. 1. Термины и определения
  20. 2. Расстояние Махаланобиса между двумя точками и между точкой и классом
  21. 2.1 Теоретические сведения
  22. 2.2 Алгоритм вычисления расстояния между двумя точками и между точкой и классом
  23. 2.3 Пример вычисления расстояния между двумя точками и между точкой и классом
  24. 3. Расстояние Махаланобиса между двумя классами
  25. 3.1 Теоретические сведения
  26. 3.2 Алгоритм вычисления расстояния между двумя классами
  27. 3.3 Пример вычисления расстояния между двумя классами
  28. 4. Расстояние Махаланобиса и метод k-ближайших соседей
  29. 5. Взвешенное расстояние Махаланобиса
  30. 6. Заключение

Видео:расстояние между прямыми в метрике МинковскогоСкачать

расстояние между прямыми в метрике Минковского

Введение

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

Определение базовой математики (Источник Википедия),

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

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

Видео:А.5.9 Евклидово расстояние между точками (длина отрезка)Скачать

А.5.9 Евклидово расстояние между точками (длина отрезка)

Функция расстояния

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

Метрики расстояния между векторами

Чтобы вычислить расстояние между точками данных A и B, в теореме Пифагора рассматривается длина осей x и y.

Метрики расстояния между векторами

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

Теперь вы, наверное, поняли, что такое функция расстояния? Вот упрощенное определение.

Основное определение от Math.net,

Функция расстояния обеспечивает расстояние между элементами набора. Если расстояние равно нулю, то элементы эквивалентны, иначе они отличаются друг от друга.

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

Видео:Метрики и расстоянияСкачать

Метрики и расстояния

Метрики расстояния

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

Ниже приведены часто используемые метрики расстояния —

Видео:Видеоурок "Расстояние между прямыми в пространстве"Скачать

Видеоурок "Расстояние между прямыми в пространстве"

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

Расстояние Минковского является метрикой в ​​нормированном векторном пространстве. Что такое нормированное векторное пространство? Нормированное векторное пространство — это векторное пространство, в котором определена норма. Предположим, что X — векторное пространство, тогда норма на X — вещественная функция ||Икс|| который удовлетворяет условиям ниже —

  1. Нулевой вектор-Нулевой вектор будет иметь нулевую длину.
  2. Скалярный фактор-Направление вектора не меняется, когда вы умножаете его на положительное число, хотя его длина будет изменена.
  3. Неравенство треугольникаЕсли расстояние является нормой, то рассчитанное расстояние между двумя точками всегда будет прямой линией.

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

Расстояние можно рассчитать по приведенной ниже формуле —

Метрики расстояния между векторами

Расстояние Минковского является обобщенной метрикой расстояния. Здесь обобщенный означает, что мы можем манипулировать приведенной выше формулой, чтобы рассчитать расстояние между двумя точками данных различными способами.

Как уже упоминалось выше, мы можем манипулировать значениемпи рассчитать расстояние тремя разными способами-

р = 2, евклидово расстояние

р = ∞, расстояние чебычева

Мы обсудим эти метрики расстояния ниже подробно.

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

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

Допустим, мы хотим рассчитать расстояние,dмежду двумя точками данныхИкса такжеY

Метрики расстояния между векторами

Расстояниеdбудет рассчитываться с использованиемабсолютная сумма разностеймежду его декартовыми координатами, как показано ниже:

Метрики расстояния между векторами

где, n- количество переменных,XIа такжеугявляются переменными векторов x и y соответственно в двумерном векторном пространстве. то естьх = (х1, х2, х3, . )а такжеу = (у1, у2, у3,…),

Теперь расстояниеdбудет рассчитываться как

(x1 — y1)+(x2 — y2)+(х3 — у3)+… +(xn — yn),

Если вы попытаетесь визуализировать расчет расстояния, он будет выглядеть примерно так:

Метрики расстояния между векторами

Расстояние до Манхэттена также известно как геометрия такси, расстояние до городских кварталов и т.д.

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

Евклидово расстояние — одна из наиболее часто используемых метрик расстояния. Он рассчитывается по формуле Минковского расстояния путем установкир-хзначение для2, Это обновит расстояние«D»формула как ниже:

Метрики расстояния между векторами

Давай остановимся ненадолго! Эта формула выглядит знакомо? Ну да, мы только что видели эту формулу выше в этой статье при обсуждении«Теорема Пифагора».

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

Метрики расстояния между векторами

Видео:Евклидово расстояние на пальцах. Как определить расстояние между двумя точками.Скачать

Евклидово расстояние на пальцах. Как определить расстояние между двумя точками.

Расстояние косинуса:

В основном, метрика косинусного расстояния используется для поиска сходства между различными документами. В косинусной метрике мы измеряем степень угла между двумя документами / векторами (термин частоты в разных документах собирается как метрика). Эта конкретная метрика используется, когда величина между векторами не имеет значения, но ориентация.

Формула подобия косинуса может быть получена из уравнения точечных произведений:

Метрики расстояния между векторами

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

Метрики расстояния между векторами

Теперь, когда у нас есть значения, которые будут рассматриваться для измерения сходства, нам нужно знать, что означают 1, 0 и -1.

Здесь значение косинуса 1 предназначено для векторов, указывающих в одном и том же направлении, то есть между документами / точками данных есть сходства. В нуле для ортогональных векторов, т. Е. Не связанных (найдено некоторое сходство). Значение -1 для векторов, указывающих в противоположных направлениях (без сходства).

Видео:Расстояние между точкамиСкачать

Расстояние между точками

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

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

Согласно определению Википедии,

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

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

Метрики расстояния между векторами

Здесь S — ковариационные метрики. Мы используем обратную метрику ковариации, чтобы получить нормализованное по дисперсии уравнение расстояния.

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

Видео:Определение кратчайшего расстояние между скрещивающимися прямыми методом замены плоскостей проекцииСкачать

Определение кратчайшего расстояние между скрещивающимися прямыми методом замены плоскостей проекции

Моделирование машинного обучения и дистанционные метрики

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

Видео:Длина отрезкаСкачать

Длина отрезка

1. Классификация

K-Ближайшие соседи (KNN) —

KNN — это не вероятностный контролируемый алгоритм обучения, т.е. он не дает вероятности принадлежности к какой-либо точке данных, а KNN классифицирует данные при жестком назначении, например, точка данных будет принадлежать 0 или 1. Теперь вы должны подумать как работает KNN, если не используется уравнение вероятности. KNN использует метрики расстояния, чтобы найти сходства или различия.

Давайте возьмем набор данных iris, который имеет три класса, и посмотрим, как KNN будет определять классы для тестовых данных.

Метрики расстояния между векторами

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

В алгоритме классификации КНН мы определяем постоянную«K».K — количество ближайших соседей контрольной точки данных. Эти K точек данных затем будут использоваться для определения класса для точки тестовых данных (обратите внимание, что это в наборе обучающих данных).

Метрики расстояния между векторами

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

Мы не будем создавать KNN с нуля, но будем использовать scikit KNN классификатор

Как видно из приведенного выше кода, мы используем метрику расстояния Минковского со значением p, равным 2, то есть в классификаторе KNN будет использоваться формула Евклидовой метрики расстояния.

По мере продвижения вперед в моделировании машинного обучения мы можем теперь обучать нашу модель и начинать предсказывать класс для тестовых данных.

Как только верхние ближайшие соседи выбраны, мы проверяем большинство проголосовавших классов в соседях —

Метрики расстояния между векторами

Из приведенного выше изображения, вы можете угадать класс для контрольной точки? Это класс 1, так как он является самым популярным.

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

Видео:19. Расстояние между параллельными прямыми Расстояние между скрещивающимися прямымиСкачать

19. Расстояние между параллельными прямыми Расстояние между скрещивающимися прямыми

2. Кластеризация

K-нуждаемость

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

В K-средних мы выбираем количество центроидов, которые определяют количество кластеров.Затем каждая точка данных будет привязана к ближайшему центроиду, используя метрику расстояния (евклидово), Мы будем использовать данные радужной оболочки, чтобы понять основной процесс K-средних.

Метрики расстояния между векторами

На приведенном выше изображении № 1, как вы можете видеть, мы случайно разместили центроиды, а на рисунке № 2, используя метрику расстояния, пытались найти ближайший класс кластеров.

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

Метрики расстояния между векторами

Как мы видели в приведенном выше примере, не имея никаких знаний о метках с помощью метрики расстояния в K-средних, мы разбили данные на 3 класса.

Видео:РАССТОЯНИЕ МЕЖДУ ТОЧКАМИ 10 и 11 классСкачать

РАССТОЯНИЕ МЕЖДУ ТОЧКАМИ 10 и 11 класс

3. Обработка естественного языка

Поиск информации

В поиске информации мы работаем с неструктурированными данными. Данные могут быть статьей, веб-сайтом, электронной почтой, текстовыми сообщениями, публикацией в социальных сетях и т. Д. С помощью методов, используемых в НЛП, мы можем создавать векторные данные таким образом, чтобы их можно было использовать для получения информации при запросе. Как только неструктурированные данные преобразуются в векторную форму, мы можем использовать метрику косинусного сходства, чтобы отфильтровать ненужные документы из корпуса.

Давайте возьмем пример и поймем использование косинусного сходства.

  1. Создать векторную форму для Корпуса и Query-

2. Проверьте сходства, т.е. найдите, какой документ в корпусе имеет отношение к нашему запросу.

Как видно из приведенного выше примера, мы запросили слово«Коричневый»и в корпусе есть только три документа, которые содержат слово«Коричневый».При проверке с помощью косинусной метрики сходства он дал те же результаты, имея> 0 значений для трех документов, кроме четвертого

Видео:Расстояние между скрещивающимися прямымиСкачать

Расстояние между скрещивающимися прямыми

Вывод

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

Видео:A.7.38 Расстояние МахаланобисаСкачать

A.7.38 Расстояние Махаланобиса

Евклидова, L1 и Чебышёва — 3 основные метрики, которые пригодятся в Data Science

Не важно, начинаете вы осваивать Data Science или работаете в этой сфере не первый год, вам наверняка пригодятся эти метрики. Разбираемся, что они из себя представляют и чем отличаются друг от друга.

Видео:Определение расстояние между параллельными прямыми (Способ замены плоскостей проекции).Скачать

Определение расстояние между параллельными прямыми (Способ замены плоскостей проекции).

Евклидово расстояние (расстояние по прямой)

Евклидово расстояние самое интуитивное для понимания: именно Евклидову метрику мы представляем, когда кто-то просит нас измерить расстояние между точками.

Евклидово расстояние — это прямая линия между двумя точками с координатами X и Y. Например, одной из таких точек может быть город на карте с его координатами долготы и широты.

Евклидово расстояние характеризуется прямой линией. Допустим, вам нужно измерить расстояние по прямой между точками A и B на карте города, приведённой ниже.

Метрики расстояния между векторами

Евклидово расстояние между двумя точками считается по теореме Пифагора

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

Sportmaster Lab , Санкт-Петербург, Липецк, Москва , От 120 000 до 350 000 ₽

Теорема Пифагора гласит, что можно рассчитать длину «диагональной стороны» (гипотенузы) прямого треугольника, зная длины его горизонтальной и вертикальной стороны (катетов). Формула выглядит так: a² + b² = c².

Метрики расстояния между векторами

Пример расчёта Евклидового расстояния

Прим. ред. В четвёртой строке вычислений допущена ошибка: (-260)^2 = 67 600, а не 76 600. Тогда результат будет равен

Видео:Экзотические метрики и их примененияСкачать

Экзотические метрики и их применения

Расстояние L1 (расстояние городских кварталов)

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

На следующем изображении показано расстояние L1 между двумя точками.

Метрики расстояния между векторами

Расстояние L1 между двумя точками по блокам

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

Но расстояние L1 — это всё же просто дистанция, а поэтому траектория здесь не имеет значения. Единственное, что нужно понимать, это примерный путь: нужно пройти какое-то количество X блоков на восток и Y блоков на север. Сумма расстояний этих блоков и будет расстоянием L1 от точки A до точки B.

Метрики расстояния между векторами

Пример расчёта расстояния L1 между двумя точками

Видео:Расстояние между двумя точками. Координаты середины отрезка.Скачать

Расстояние между двумя точками. Координаты середины отрезка.

Расстояние Чебышёва (метрика шахматной доски)

Расстояние Чебышёва известно ещё как расстояние шахматной доски. Чтобы понять принцип такой метрики, нужно представить короля на шахматной доске — он может ходить во всех направлениях: вперёд, назад, влево, вправо и по диагонали.

Метрики расстояния между векторами

Расстояние Чебышёва между двумя точками

Разница расстояния L1 и расстояния Чебышёва в том, что при переходе на одну клетку по диагонали в первом случае засчитывается два хода (например вверх и влево), а во втором случае засчитывается всего один ход.

Ещё эти оба расстояния отличаются от Евклидового расстояния тем, что у Евклидового движение по диагонали рассчитывается по теореме Пифагора.

Метрики расстояния между векторами

Сравнение путей 3 метрик

Расстояние Чебышёва можно представить как проход по шахматной доске.

Вот ещё один пример представления расстояния Чебышёва. Допустим, у вас есть дрон с двумя независимыми моторами: первый мотор тянет дрон вперёд, второй — в сторону. Оба мотора могут работать одновременно и равномерно на максимуме своей мощности.

Поэтому дрон может передвинуться на одну клетку по диагонали так же быстро, как по горизонтали или вертикали.

Посмотрите ещё раз на карту города по расстоянию Чебышёва. Первый шаг — оба мотора работают одновременно, второй шаг идентичен первому, а на третьем шаге мотор, тянущий дрон вперёд, отключается, и дрон смещается в сторону.

Таким образом, расстояние Чебышёва определяется как самая большая дистанция на одной оси.

Метрики расстояния между векторами

Пример расчёта расстояния Чебышёва между двумя точками

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

Видео:Уравнение окружности и формула расстояния между точками на плоскостиСкачать

Уравнение окружности и формула расстояния между точками на плоскости

Расстояние Махаланобиса

Видео:Расстояние между скрещивающимися прямыми #2Скачать

Расстояние между скрещивающимися прямыми #2

Содержание

Если есть замечания или ошибки, пишите на почту quwarm@gmail.com или в комментариях.

Видео:Стереометрия ЕГЭ. Метод координат. Часть 5 из 5. Расстояние между прямымиСкачать

Стереометрия ЕГЭ. Метод координат. Часть 5 из 5. Расстояние между прямыми

Основной смысл использования расстояния Махаланобиса

На рисунке 1 два наблюдения изображены в виде красных точек.
Центр класса изображен в виде синей точки.

Метрики расстояния между векторамиРисунок 1. Двумерные данные с эллипсами прогноза

Вопрос — какое наблюдение ближе к центру класса?
Ответ зависит от того, как измеряется расстояние.

Если измерять расстояние по метрике Евклида, то получим, что расстояние от центра класса Метрики расстояния между векторамидо точки Метрики расстояния между векторамиравно Метрики расстояния между векторами, до точки Метрики расстояния между векторамиравно Метрики расстояния между векторами, т. е. точка Метрики расстояния между векторамиближе к центру класса.

Однако для этого распределения дисперсия в направлении Метрики расстояния между векторамименьше, чем дисперсия в направлении Метрики расстояния между векторами, поэтому в некотором смысле точка Метрики расстояния между вектораминаходится «на большем стандартном отклонении» от центра класса, чем Метрики расстояния между векторами.

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

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

Видео:"Парадоксальное" среднее расстояние между точками на окружностиСкачать

"Парадоксальное" среднее расстояние между точками на окружности

1. Термины и определения

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

Класс Метрики расстояния между векторами— конечное неупорядоченное множество схожих по некоторым критериям оптимальности точек: Метрики расстояния между векторами, где Метрики расстояния между векторами— количество точек в классе Метрики расстояния между векторами.

Точка Метрики расстояния между векторами— конечное упорядоченное множество Метрики расстояния между векторамизначений признаков: Метрики расстояния между векторами.

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

Под словом «точка» подразумевается точка координатного Метрики расстояния между векторами-мерного пространства признаков. Причем замеченные сходства и различия между точками находятся в соответствии с расстояниями между ними.

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

В примерах: Метрики расстояния между векторамипризнак точки Метрики расстояния между векторамииз Метрики расстояния между векторамикласса обозначается как Метрики расстояния между векторами.

Подразумевается, что одинаковых точек в классе (-ах) нет.

Видео:#31. Как найти расстояние между скрещивающимися прямыми?Скачать

#31. Как найти расстояние между скрещивающимися прямыми?

2. Расстояние Махаланобиса между двумя точками и между точкой и классом

Этот пункт включает внутриклассовое расстояние (расстояние между двумя точками из одного класса) и расстояние между точкой (не принадлежащей ни одному из классов) и классом.

2.1 Теоретические сведения

Расстояние Махаланобиса между двумя точками — мера расстояния между двумя случайными точками Метрики расстояния между векторамии Метрики расстояния между векторами, одна из которых может (или обе могут ) принадлежать некоторому классу Метрики расстояния между векторамис матрицей ковариаций Метрики расстояния между векторами:

Метрики расстояния между векторами

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

Если матрица ковариаций является единичной матрицей, то расстояние Махаланобиса становится равным расстоянию Евклида.
Иначе говоря, если класс представляет собой упорядоченное множество нормированных (дисперсии равны 1) независимых (ковариации равны 0) точек, то расстояние Махаланобиса равно расстоянию Евклида.

Расстояние Махаланобиса является метрикой (доказательство здесь [internet archive] и здесь), т. е. Метрики расстояния между векторамимежду двумя точками Метрики расстояния между векторамии Метрики расстояния между векторамис матрицей ковариаций Метрики расстояния между векторамив пространстве признаков удовлетворяет следующим аксиомам:
1. Аксиома тождества: Метрики расстояния между векторами;
2. Аксиома симметрии: Метрики расстояния между векторами;
3. Аксиома треугольника: Метрики расстояния между векторами.
Из этих аксиом следует неотрицательность функции расстояния: Метрики расстояния между векторами.

Из аксиом следует, что значение под корнем не меньше 0, однако при расчетах с использованием неточных вещественных чисел рекомендуется предварительно ограничивать диапазон результата слева значением 0 ( max(0.0, value) ) во избежание NaN, которое появляется после взятия корня (функция sqrt или возведение в степень 0.5 ) близкого к 0 слева числа (например, Метрики расстояния между векторами). Этот нюанс часто не замечается.

Чтобы найти внутриклассовое расстояние Махаланобиса, нужно следовать вышеприведенной формуле — вычислить матрицу ковариаций класса и затем само расстояние между двумя точками в нем.

Чтобы найти расстояние Махаланобиса между точкой (не принадлежащей ни одному из классов) и классом, нужно также следовать вышеприведенной формуле — вычислить матрицу ковариаций класса и затем расстояние между точкой (не принадлежащей ни одному из классов) и центроидом класса (т. н. «расстояние до центроида»).

Для решения задачи классификации тестовой точки, нужно найти матрицы ковариаций всех классов. Затем с помощью подсчета расстояний от заданной точки до каждого класса выбрать класс, до которого расстояние минимально.
Некоторые методы (такие, как метод Метрики расстояния между векторами-ближайших соседей, который будет рассмотрен в п. 4) подразумевают вычисление расстояний не до центроидов классов, а до всех точек всех классов.

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

На практике математическое ожидание обычно оценивается как среднее арифметическое:

Метрики расстояния между векторами

где Метрики расстояния между векторами— среднее арифметическое точек класса Метрики расстояния между векторамипо Метрики расстояния между векторамипризнаку, Метрики расстояния между векторами— количество точек в классе Метрики расстояния между векторами, Метрики расстояния между векторамиМетрики расстояния между векторамипризнак точки Метрики расстояния между векторами.

Центроид Метрики расстояния между векторамикласса Метрики расстояния между векторами:

Метрики расстояния между векторами

Ковариация — это численное выражение свойства ковариантности двух признаков точек.
Свойство ковариантности означает, что признаки имеют тенденцию изменяться совместно (ковариантно).

Ковариационная матрица состоит из ковариаций между всеми парами признаков. Если количество признаков равно Метрики расстояния между векторами, то ковариационная матрица — матрица размерности Метрики расстояния между векторами, имеющая вид:

Метрики расстояния между векторами

Элементы ковариационной матрицы — ковариации — для набора точек вычисляются по формуле (несмещенная ковариация, англ. «sample covariance»):

Метрики расстояния между векторами

где Метрики расстояния между векторамии Метрики расстояния между векторами— математические ожидания по Метрики расстояния между векторамии Метрики расстояния между векторамипризнакам точек соответственно, Метрики расстояния между векторами— количество точек в классе Метрики расстояния между векторами.

Формулу Метрики расстояния между вектораминужно использовать только в том случае, если математические ожидания генеральной совокупности Метрики расстояния между векторамии Метрики расстояния между векторамирассматриваемого класса неизвестны. Если же они известны, то формула имеет вид (смещенная ковариация, англ. «population covariance»):

Метрики расстояния между векторами

Ковариация обладает следующими важными свойствами:

Если при переходе от одной точки к другой Метрики расстояния между векторамии Метрики расстояния между векторамипризнаки увеличиваются (уменьшаются) вместе, то 0″ alt=»cov_>0″ src=»https://habrastorage.org/getpro/habr/upload_files/faf/07a/9e9/faf07a9e95c345f811620c58ea69f13b.svg»/>;

Если при переходе от одной точки к другой Метрики расстояния между векторамипризнак увеличивается, а Метрики расстояния между векторамиуменьшается (или наоборот), то Метрики расстояния между векторами;

Если при переходе от одной точки к другой Метрики расстояния между векторамии Метрики расстояния между векторамипризнаки изменяются независимо, то Метрики расстояния между векторами(обратное утверждение в общем случае неверно*).

Ковариация симметрична: Метрики расстояния между векторами.

Неравенство Коши — Буняковского: Метрики расстояния между векторами.

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

Метрики расстояния между векторами

где Метрики расстояния между векторами— математическое ожидание.

Первые три свойства ковариации проиллюстрированы на рисунке 2.

Метрики расстояния между векторамиРисунок 2. Знак ковариации двух случайных величин X и Y

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

Известно, что ковариационная матрица необратима в следующих частных случаях:
1. Если по какому-либо признаку Метрики расстояния между векторамивсе точки класса имеют одно и то же значение и, следовательно, среднеквадратическое отклонение по признаку Метрики расстояния между векторамиравно нулю.
Пример: Метрики расстояния между векторами.
2. Если ковариации всех признаков максимальны (Метрики расстояния между векторами, «perfect covariance»). Примеры:
Метрики расстояния между векторами— идеальная положительная ковариация;
Метрики расстояния между векторами— идеальная отрицательная ковариация.
3. Если количество точек в классе Метрики расстояния между векторамименьше количества признаков Метрики расстояния между векторамиплюс Метрики расстояния между векторами:
Метрики расстояния между векторами
Есть и другие случаи.

Что делать, если ковариационная матрица необратима?
Единственно правильного подхода не существует.
Однако существует целая область исследований, направленная на регуляризацию этой проблемы.
Три приведенные выше и некоторые другие проблемы могут быть решены следующими способами:

1. Два способа для первого случая

Добавить больше точек в класс, чтобы среднеквадратическое отклонение (аналогично — дисперсия) по признаку Метрики расстояния между векторамине равнялось нулю.

Убрать признак Метрики расстояния между векторамииз рассмотрения.

Использовать модификацию метрики Махаланобиса (например, для второго случая), — метрику Евклида-Махаланобиса (из статьи):

Метрики расстояния между векторами

где Метрики расстояния между векторами— единичная матрица того же размера, что и Метрики расстояния между векторами.

Эта метрика устраняет недостаток метрики Махаланобиса, поскольку элементы её главной диагонали всегда больше нуля.

Помимо обратной матрицы существует псевдообратная матрица.
Операция Метрики расстояния между векторами— псевдообратное преобразование матрицы (обратное преобразование Мура — Пенроуза).
Функции вычисления псевдообратной матрицы:
— ginv в библиотеке MASS (R);
— pinv в библиотеке numpy (Python);
— pinv в MATLAB;
— pinv в Octave.

Псевдообратная матрица, обозначаемая Метрики расстояния между векторами, (в отрыве от темы статьи) определяется как матрица, которая «решает» задачу наименьших квадратов: Метрики расстояния между векторами, где Метрики расстояния между векторами— прямоугольная матрица, в которой число строк (уравнений) больше числа столбцов (переменных); такая система уравнений в общем случае не имеет решения, поэтому эту систему можно «решить» только в смысле выбора такого вектора Метрики расстояния между векторами, чтобы минимизировать «расстояние» между векторами Метрики расстояния между векторамии Метрики расстояния между векторами.
Псевдообратная матрица может быть найдена с помощью сингулярного разложения матрицы. Причем для любой матрицы над вещественными числами существует псевдообратная матрица и притом только одна.
Также важно отметить тот факт, что если обратную матрицу Метрики расстояния между векторамиможно найти (иначе говоря, исходная матрица Метрики расстояния между векторами— квадратная и невырожденная), то псевдообратная будет с Метрики расстояния между векторамисовпадать: Метрики расстояния между векторами.

Формула вычисления расстояния:

Метрики расстояния между векторами

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

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

Метод усадки (shrinkage) ковариационной матрицы — это метод оценки задач с небольшим количеством точек и большим количеством признаков (т. е. для третьего случая).
Смысл этого метода в замене матрицы Метрики расстояния между векторамина матрицуМетрики расстояния между векторами, где Метрики расстояния между векторами— некоторая подходящая положительно определенная матрица, Метрики расстояния между векторами— коэффициент усадки, причем наименьшее собственное значение матрицы Метрики расстояния между векторамидолжно быть не меньше Метрики расстояния между векторами, умноженной на наименьшее собственное значение Метрики расстояния между векторами.
В расстоянии Махаланобиса:

Метрики расстояния между векторами

Предложение Olivier Ledoit и Michael Wolf — Метрики расстояния между векторами, где Метрики расстояния между векторами— сумма диагональных элементов матрицы Метрики расстояния между векторами, деленная на число признаков, Метрики расстояния между векторами— единичная матрица, а Метрики расстояния между векторамивычисляется в соответствии с приведенным авторами алгоритмом.
Реализация алгоритма, предложенного авторами, на Python имеется в библиотеке scikit-learn (sklearn.covariance.LedoitWolf, sklearn.covariance.ledoit_wolf, sklearn.covariance.ledoit_wolf_shrinkage).

На стр. 8 написано, что «в отличие от псевдообратного подхода, метод усадки ковариационной матрицы генерирует обобщенную меру расстояния, которая является метрикой» (адаптированный перевод). Это утверждение может ввести в заблуждение в отрыве от контекста — три перечисленных выше условия (про Метрики расстояния между векторами, про Метрики расстояния между векторами, про собственные значения) обязательны, иначе результат может быть неверным.
Следующий пример демонстрирует несоблюдение условия Метрики расстояния между векторами.

Пусть Метрики расстояния между векторами, тогда в соответствии с предложением в этой и этой статьях (реализация на Python):
Метрики расстояния между векторами;
— расстояние от точки Метрики расстояния между векторамидо точки Метрики расстояния между векторами: Метрики расстояния между векторами;
— расстояние от точки Метрики расстояния между векторамидо точки Метрики расстояния между векторами: Метрики расстояния между векторами;
— расстояние от точки Метрики расстояния между векторамидо точки Метрики расстояния между векторами: Метрики расстояния между векторами;
— расстояние от точки Метрики расстояния между векторамидо точки Метрики расстояния между векторами: Метрики расстояния между векторами.
В данном случае предложение:
Метрики расстояния между векторами
где Метрики расстояния между векторами— диагональная матрица со значениями на диагонали Метрики расстояния между векторами.

Также есть Shrunk Covariance (sklearn.covariance.ShrunkCovariance, sklearn.covariance.shrunk_covariance). Однако он не находит Метрики расстояния между векторами, а предлагает пользовательский выбор (по умолчанию Метрики расстояния между векторами).
Матрица (как и в предложении Ledoit — Wolf): Метрики расстояния между векторами.

Общую информацию об усадке можно почитать в википедии.

Причем стоит обратить внимание на то, что LedoitWolf и ShrunkCovariance (и некоторые другие методы) используют empirical_covariance, которая вычисляет смещенную ковариацию (англ. «population covariance», формула Метрики расстояния между векторами).

Если матрица ковариаций диагональная (но необязательно единичная), то получившаяся мера расстояния носит название «нормализованное расстояние Евклида»:

Метрики расстояния между векторами

где Метрики расстояния между векторами— среднеквадратическое отклонение точек класса (к которому относится точка Метрики расстояния между векторамии/или точка Метрики расстояния между векторами) по Метрики расстояния между векторамипризнаку (исправленное СКО, «corrected sample standard deviation»):

Метрики расстояния между векторами

где Метрики расстояния между векторами— математическое ожидание точек класса к которому относится точка Метрики расстояния между векторамии/или точка Метрики расстояния между векторами) по Метрики расстояния между векторамипризнаку.
В случае среднего арифметического:

Метрики расстояния между векторами

Формулу Метрики расстояния между вектораминужно использовать только в том случае, если математические ожидания генеральной совокупности Метрики расстояния между векторамирассматриваемого класса неизвестны. Если же они известны, то формула имеет вид (неисправленное СКО, англ. «uncorrected sample standard deviation»):

Метрики расстояния между векторами

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

Метрики расстояния между векторами

Или более полно:

Метрики расстояния между векторами

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

Есть и другие способы, но они выходят за рамки этой статьи.

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

2.2 Алгоритм вычисления расстояния между двумя точками и между точкой и классом

Шаг 1. Вычислить математические ожидания значений признаков точек класса.

Шаг 2. Вычислить среднеквадратические отклонения значений признаков точек класса.

Шаг 3. Вычислить ковариации между всеми парами признаков точек класса и составить ковариационную матрицу.

Шаг 4. Если матрица обратима, то вычислить расстояние по Махаланобису. Если нет, то попробовать один из вышеперечисленных способов решения.

2.3 Пример вычисления расстояния между двумя точками и между точкой и классом

Пусть имеется тестовая точка Метрики расстояния между векторамии два следующих класса (рис. 3):

Метрики расстояния между векторами Метрики расстояния между векторамиРисунок 3. Исходные данные примера

Шаг 1. Вычислим математические ожидания значений признаков точек классов.

Метрики расстояния между векторами

Шаг 2. Вычислим среднеквадратические отклонения значений признаков точек классов.

По первому и второму признакам точек первого класса:

Метрики расстояния между векторами

По первому и второму признакам точек второго класса:

Метрики расстояния между векторами

Шаг 3. Вычислим ковариации между всеми парами признаков точек классов и составим ковариационные матрицы.

Для первого класса.

Метрики расстояния между векторами

Получим следующую матрицу ковариаций:

Метрики расстояния между векторами

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

Для второго класса.

Метрики расстояния между векторами

Получим следующую матрицу ковариаций:

Метрики расстояния между векторами

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

Код на Python 3.6 с использованием библиотеки numpy 1.19.5

Шаг 4. Если матрица обратима, то вычислим расстояние по Махаланобису и расстояние по Евклиду — Махаланобису. Если матрица необратима, то попробуем несколько способов решения этой проблемы.

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

Первый класс. Как уже было сказано ранее — для матрицы ковариаций первого класса нельзя найти обратную матрицу, поэтому расстояние между тестовой точкой и первым классом будем вычислять по 5 формулам: (1) метрика Евклида — Махаланобиса, (2) метод усадки ковариационной матрицы (LedoitWolf), (3) псевдообратный подход, (4) нормализованное расстояние Евклида, (5) метод диагональной матрицы — и выберем среди них наиболее правдоподобную:

1. Метрика Евклида — Махаланобиса.

Метрики расстояния между векторамиКод на Python 3.6 с использованием библиотеки numpy 1.19.5

Первая точка — точка центроида, которая совпадает с одной из точек класса.

2. Метод усадки ковариационной матрицы (LedoitWolf).

Метрики расстояния между векторамиКод на Python 3.6 с использованием библиотек numpy 1.19.5 и scikit-learn 0.24.1

Первая точка — точка центроида, которая совпадает с одной из точек класса.

3. Псевдообратный подход.

Ранее уже было сказано про псевдообратные матрицы. Их недостаток использования демонстрируется в следующем примере.

Метрики расстояния между векторами

Как видим, нарушена аксиома тождества — расстояние между двумя различными точками равно нулю.

Код на Python 3.6 с использованием библиотеки numpy 1.19.5

Первая точка — точка центроида, которая совпадает с одной из точек класса.

4. Нормализованное расстояние Евклида.

Метрики расстояния между векторамиКод на Python 3.6 с использованием библиотеки numpy 1.19.5

Первая точка — точка центроида, которая совпадает с одной из точек класса.

5. Метод диагональной матрицы.

Метрики расстояния между векторамиКод на Python 3.6 с использованием библиотеки numpy 1.19.5

Первая точка — точка центроида, которая совпадает с одной из точек класса.

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

Метрики расстояния между векторами

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

Метрики расстояния между векторамиМетрики расстояния между векторамиМетрики расстояния между векторами Метрики расстояния между векторамиКод на Python 3.6 с использованием библиотеки numpy 1.19.5

Первая точка — точка центроида.

По принципу ближнего соседа

Первый класс:
1. Метрика Евклида — Махаланобиса: Метрики расстояния между векторами;
2. Метод усадки ковариационной матрицы (LedoitWolf): Метрики расстояния между векторами;
3. Псевдообратный подход: Метрики расстояния между векторами;
4. Нормализованное расстояние Евклида: Метрики расстояния между векторами;
5. Метод диагональной матрицы: Метрики расстояния между векторами.

Второй класс (метрика Махаланобиса): Метрики расстояния между векторами.
Второй класс (метрика Евклида — Махаланобиса): Метрики расстояния между векторами.

Судя по рисунку 3, более правдоподобны (для данного примера и принципа) метрика Евклида — Махаланобиса, метод усадки ковариационной матрицы и метод диагональной матрицы.

По принципу дальнего соседа

Первый класс:
1. Метрика Евклида — Махаланобиса: Метрики расстояния между векторами;
2. Метод усадки ковариационной матрицы (LedoitWolf): Метрики расстояния между векторами;
3. Псевдообратный подход: Метрики расстояния между векторами;
4. Нормализованное расстояние Евклида: Метрики расстояния между векторами;
5. Метод диагональной матрицы: Метрики расстояния между векторами.

Второй класс (метрика Махаланобиса): Метрики расстояния между векторами.
Второй класс (метрика Евклида — Махаланобиса): Метрики расстояния между векторами.

Судя по рисунку 3, более правдоподобны (для данного примера и принципа) метод усадки ковариационной матрицы и метод диагональной матрицы.

По принципу центроида

Первый класс:
1. Метрика Евклида — Махаланобиса: Метрики расстояния между векторами;
2. Метод усадки ковариационной матрицы (LedoitWolf): Метрики расстояния между векторами;
3. Псевдообратный подход: Метрики расстояния между векторами;
4. Нормализованное расстояние Евклида: Метрики расстояния между векторами;
5. Метод диагональной матрицы: Метрики расстояния между векторами.

Второй класс (метрика Махаланобиса): Метрики расстояния между векторами.
Второй класс (метрика Евклида — Махаланобиса): Метрики расстояния между векторами.

Судя по рисунку 3, более правдоподобны (для данного примера и принципа) метрика Евклида — Махаланобиса, метод усадки ковариационной матрицы и метод диагональной матрицы.

Результат

Наиболее правдоподобными методами для данного примера являются метод усадки ковариационной матрицы и метод диагональной матрицы.

3. Расстояние Махаланобиса между двумя классами

Этот пункт включает расстояние между двумя классами и расстояние между точкой (представляющей единственный объект класса) и классом.

Расстояние Махаланобиса между двумя классами является квазиметрикой, т. е.:
— удовлетворяет условиям Метрики расстояния между векторами, Метрики расстояния между векторами, Метрики расстояния между векторами.
— не удовлетворяет условию (в общем случае) Метрики расстояния между векторами.
Подробнее здесь.

3.1 Теоретические сведения

Расстояние Махаланобиса между двумя классами — мера расстояния между двумя классами Метрики расстояния между векторамии Метрики расстояния между векторамис центроидами Метрики расстояния между векторамии Метрики расстояния между векторамии с матрицами ковариаций Метрики расстояния между векторамии Метрики расстояния между векторамисоответственно:

Метрики расстояния между векторами

где Метрики расстояния между векторами— объединенная ковариационная матрица, Метрики расстояния между векторами— обратная объединенная ковариационная матрица, Метрики расстояния между векторамии Метрики расстояния между векторами— матрицы ковариаций двух классов, Метрики расстояния между векторамии Метрики расстояния между векторами— число точек в первом и во втором классах соответственно.

Причем в некоторой литературе также предлагается другой вариант:

Метрики расстояния между векторами

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

Примечательно то, что при использовании второго варианта для первого класса с одной точкой и некоторого второго класса получается формула, аналогичная формуле расчета расстояния между точкой (не принадлежащей ни одному из классов) и классом (п. 2 «Расстояние Махаланобиса между двумя точками и между точкой и классом»):

Метрики расстояния между векторами

Расстояние Евклида-Махаланобиса между двумя классами:

Метрики расстояния между векторами

где Метрики расстояния между векторами— единичная матрица того же размера, что и Метрики расстояния между векторами.

3.2 Алгоритм вычисления расстояния между двумя классами

Шаг 1. Вычислить математические ожидания значений признаков точек классов.

Шаг 2. Вычислить среднеквадратичные отклонения значений признаков точек классов.

Шаг 3. Вычислить ковариации между всеми парами признаков точек классов, составить ковариационные матрицы и объединенную ковариационную матрицу.

Шаг 4. Если матрица обратима, то вычислить расстояние по Махаланобису. Если матрица необратима, то вычислить расстояние по формуле расстояния Евклида — Махаланобиса.

3.3 Пример вычисления расстояния между двумя классами

Из примера п. 2.2.

Метрики расстояния между векторами

Найдем расстояние между двумя классами.
Первые 3 аналогичных шага алгоритма были выполнены в п. 2.2.
Выполним 4 шаг.

Шаг 4. Если матрица обратима, то вычислим расстояние по Махаланобису. Если матрица необратима, то вычислим расстояние по формуле расстояния Евклида — Махаланобиса.

Объединенная ковариационная матрица:

Метрики расстояния между векторами

Обратная объединенная ковариационная матрица:

Метрики расстояния между векторами

По принципу центроида

Расстояние МахаланобисаМетрики расстояния между векторами.

Метрики расстояния между векторами

Расстояние Евклида — Махаланобиса Метрики расстояния между векторами.

Для варианта Метрики расстояния между векторами:
— расстояние Махаланобиса Метрики расстояния между векторами;
— расстояние Евклида — Махаланобиса Метрики расстояния между векторами.

По принципу ближнего соседа

Минимальное расстояние Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами.

Минимальное расстояние Евклида — Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами.

Для варианта Метрики расстояния между векторами:
— минимальное расстояние Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами;
— минимальное расстояние Евклида — Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами.

По принципу дальнего соседа

Максимальное расстояние Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами.

Максимальное расстояние Евклида — Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами.

Для варианта Метрики расстояния между векторами:
— максимальное расстояние Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами;
— максимальное расстояние Евклида — Махаланобиса Метрики расстояния между векторамимежду Метрики расстояния между векторамии Метрики расстояния между векторамии между Метрики расстояния между векторамии Метрики расстояния между векторами.

Код на Python 3.6 с использованием библиотеки numpy 1.19.5 для расчета представлен здесь.

4. Расстояние Махаланобиса и метод k-ближайших соседей

Классифицировать тестовую точку можно при помощи метода Метрики расстояния между векторами-ближайших соседей. Сначала нужно вычислить ковариационную матрицу для каждого класса, затем определить Метрики расстояния между векторами-ближайших соседей для тестовой точки (вычислив расстояния от неё до всех точек всех классов с учетом ковариационных матриц) и отнести точку к классу с наибольшим количеством вхождений среди Метрики расстояния между векторамиближайших соседей.

Далее представлен код программы для классификации методом Метрики расстояния между векторами-ближайших соседей.
Причем:
— Обратная матрица: Метрики расстояния между векторами(метрика Евклида — Махаланобиса);
— Используется квадрат расстояния (квадратный корень не имеет значения для конечного результата классификации, а без него программа работает немного быстрее).

Код на Python 3.6 с использованием библиотеки numpy 1.19.5

Вывод программы в формате:
«knn: [наименьший номер класса (с 1), к которому можно отнести точку] [вероятностные оценки для тестовых точек для всех классов] [индексы классов (с 0), к которым можно отнести точку]».

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

Метрики расстояния между векторамиРисунок 4. Визуализация классификации сетки точек Код для визуализации на Python 3.6

Один запуск — один график для аргумента Метрики расстояния между векторами.

5. Взвешенное расстояние Махаланобиса

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

Метрики расстояния между векторами

Пример матрицы весовых коэффициентов (является единичной, поэтому на результат не повлияет) для точек с двумя признаками:

Метрики расстояния между векторами

Формула взвешенного расстояния Евклида — Махаланобиса:

Метрики расстояния между векторами

6. Заключение

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

Что ещё?
1. Существует полиномиальное расстояние Махаланобиса, о котором можно почитать здесь.
2. О применении расстояния Махаланобиса в машинном обучении можно почитать в книге «Metric Learning» (авторы: Aurélien Bellet, Amaury Habrard, Marc Sebban; версия для ознакомления).
3. Расстояние Махаланобиса может использоваться в кластеризации (например, k-means: статья 1, статья 2, статья 3).
4. Расстояние Махаланобиса может использоваться в области интеллектуального анализа текста (статья).
5. Расстояние Махаланобиса может использоваться для обнаружения выбросов (статья 1, статья 2, статья 3).

Поделиться или сохранить к себе: