Метрики расстояния составляют основу множества алгоритмов в области данных науки и машинного обучения, позволяя измерять сходство или различие между точками данных. В этом руководстве мы исследуем основы расстояния Минковского, его математические свойства и его реализации. Мы проверим, как оно связано с другими обычными мерами расстояний и продемонстрируем его использование через примеры кода на Python и R.
Независимо от того, разрабатываете ли вы алгоритмы кластеризации, работаете ли с отклонениями или настраиваете классификационные модели, понимание расстояния Минковского может улучшить ваш подход к анализу данных и разработке моделей. Посмотрим на это.
Что такое Расстояние Минковского?
Мinkowski distance is a versatile metric used in normed vector spaces, named after the German mathematician Hermann Minkowski. It’s a generalization of several well-known distance measures, making it a fundamental concept in various fields such as math, computer science, and data analysis.
At its core, Minkowski distance provides a way to measure the distance between two points in a multi-dimensional space. What makes it particularly useful is its ability to encompass other distance metrics as special cases, primarily through a parameter p
. This parameter allows the Minkowski distance to adapt to different problem spaces and data characteristics. The general formula for Minkowski distance is:
Where:
-
x
andy
are two points in an n-dimensional space -
p
is a parameter that determines the type of distance (p ≥ 1) -
|xi - yi|
represents the absolute difference between the coordinates of x and y in each dimension
Минковский расстояние полезно по двум причинам. Во-первых, оно дает вам гибкость, чтобы включать между собой Манхэттенскую или Евклидову дистанцию в зависимости от потребности. Во-вторых, оно признает, что не все наборы данных (думайте о высокомерных пространствах) удобны для использования исключительно Манхэттенской или исключительно Евклидовой дистанции.
На практике параметр p
обычно выбирается путём включения рабочих процедур трейн/тест валидации. За счёт тестирования различных значений p в процессе кросс-валидации вы можете определить, какое значение обеспечивает лучшие показатели модели для конкретного набора данных.
Как работает Минковский расстояние
Посмотрим, как Минковское расстояние связано с другими формулами расстояния и пройдём пример.
Generalization of other distance metrics
Первое, что надо рассмотреть, это то, что формула Минковского расстояния включает в себя формулы для Манхэттенского, Евклидового и Чебышевского расстояний.
Manhattan Distance (p = 1):
Когда p
установлен в 1, Минковское расстояние становится Манхэттенским.
Также известно как расстояние между улицами или L1 норма, Manhattan Distance измеряет сумму абсолютных различий.
Euclidean Distance (p = 2):
Когда p
установлен в 2, Минковское расстояние становится Евклидовым.
евклидовая длина является наиболее распространенной метрикой расстояния, представляющая собой прямолинейное расстояние между двумя точками.
Чебышевская Длина (p → ∞):
чебышевская длина, также известная как расстояние на шахматной доске, измеряет максимальное различие по любому измерению.
Работая с примером
Чтобы по-настоящему осознать функциональность и мощь многомерного расстояния Минковского, выполним пример. Это исследование поможет нам понять, как параметр p
влияет на вычисление и интерпретацию расстояний в многомерных пространствах.
Посмотрим на два точки в двумерном пространстве:
- пункт A: (2, 3)
- пункт B: (5, 7)
Мы рассчитаем многомерное расстояние Минковского между этими точками для различных значений p
.
Параметр p
в формуле расстояния Минковского контролирует чувствительность метрики к различиям между отдельными компонентами:
- когда p=1: Все различия вкладываются линеально.
- когда p=2: более крупные различия оказывают большее влияние благодаря квадрированию.
- когда p>2: еще большее внимание уделяется более крупным различиям.
- когда p→∞: важны только максимальные различия между всеми измерениями.
Когда p увеличивается, расстояние Минковского, как правило, уменьшается, приближаясь к расстоянию Чебышева. Это происходит потому, что более высокие значения p придают большее значение большим различиям и меньшее значение мелким различиям.
Чтобы представить, как различные значения p влияют на вычисление расстояния между нашими точками A(2, 3) и B(5, 7), рассмотрим следующий график:
Проследуя графику, можно увидеть, как изменяется мера расстояния с увеличением p:
- Манхэттанское расстояние (p=1), представленное зеленым путём, дает самое длинное расстояние, так как строго следует по сетке.
- Евклидово расстояние (p=2), показано оранжевой прямой линией, обеспечивает прямолинейный путь.
- Чебышевское расстояние (p=∞), изображено красными破折号, концентрируется исключительно на крупнейшем различии координат, создавая путь, который двигается максимально в одном измерении, прежде чем обратить внимание на другое.
- Мера Минковского с p=3 в синем цвете показывает небольшой излом, намекая на переход между Евклидовым и Чебышевским расстояниями.
Эта visualization помогает нам понять, почему для различных приложений могут быть выбраны различные значения p. Например, Манхэттанское расстояние может быть более подходящим для проблем навигации в городе, а Евклидово расстояние часто используется в физических расчетах. Более высокие значения p, как в случае с меторой Минковского p=3, могут быть полезны в сценариях, где должны быть учтены крупные различия, и Чебышевское расстояние может быть предпочтительным, когда критическим фактором является максимальное различие в любом измерении.
Приложения расстояния Минковского
Мinkowski距离, с егоjustifyadjustable parameter p
, является гибкой herigate tool, используемой во многих областях. changing p
, мы можем custom tailor, как мы измеряем distance between points, делая ее подходящей для различных задач. Below are four applications where Minkowski distance plays an important role.
Машинное обучение и data science
В машинном обучении и data science, Minkowski distance является основополагающей для algorithms, которые основываются на измерении сходства или различия между data points. Один известный пример это algorithm k-Nearest Neighbors (k-NN), который классифицирует data points на основе категорий их ближайших соседей.Utilizing Minkowski distance, мы можем adjust parameter p
to change, как мыcalculate the “closeness” between points.
Образование моделей
Образование моделей涉及到 идентификации моделей и regularities in data, таких как признание handwriting или детекция особенностей лица.В этом контексте, Minkowski distance измеряет различие между feature vectors representing patterns. For example, in image recognition, each image can be represented by a vector of pixel values. Calculating the Minkowski distance between these vectors allows us to quantify how similar or different the images are.
Настраивая p
, мы можем управлять чувствительностью меры расстояния к различиям в конкретных характеристиках. Более низкое значение p
может учитывать общие различия по всем пикселям, в то время как более высокое p
может подчеркнуть значительные различия в определенных областях изображения.
Обнаружение аномалий
Обнаружение аномалий направлено на выявление точек данных, которые значительно отклоняются от большинства, что очень важно в таких областях, как обнаружение мошенничества, сетевая безопасность и обнаружение неисправностей в системах. Расстояние Минковского используется для измерения того, насколько точка данных удалена от других в наборе данных. Точки с большим расстоянием являются потенциальными аномалиями. Выбрав подходящее значение p
, аналитики могут повысить чувствительность систем обнаружения аномалий к тем видам отклонений, которые наиболее актуальны для их конкретного контекста.
Вычислительная геометрия и пространственный анализ
В вычислительной геометрии и анализе пространства используется Мinkowski-расстояние для вычисления расстояний между точками в пространстве, что является основой для многих геометрических алгоритмов. Например, обнаружение столкновений в этих областях основывается на Мinkowski-расстоянии для определения того, когда объекты слишком близки, чтобы взаимодействовать. Изменение p разработчики могут создавать различные границы столкновений, от угловых (низкий p) до округлых (высокий p).
Помимо обнаружения столкновений, Мinkowski-расстояние может быть полезно в кластеризации пространства и анализе форм. изменение значения p позволяет исследователям акцентировать различные аспекты пространственных отношений, от расстояний между кварталами до сходства всего объекта.
Математические свойства Мinkowski-расстояния
Мinkowski-расстояние не только универсальный инструмент в практических приложениях, но и важное понятие в математической теории, особенно в исследовании метрических пространств и норм.
Свойства метрического пространства
Мinkowski-расстояние удовлетворяет четырем необходимым свойствам для того, чтобы функция была считаться метрикой в метрическом пространстве:
- Неотрицательность: Минковский расстояние между любыми двумя точками всегда неотрицательно, d(x, y) ≥ 0. Это очевидно, так как это p-я степень суммы неотрицательных слов (степени по модулю).
- Identity of Indiscernibles: Минковское расстояние между двумя точками равно zero если и только если эти две точки идентичны. Mathemathematically, d(x, y) = 0 если и только если x=y. Это следует из-за того, что абсолютное различие между идентичными компонентами равно zero.
- Симметрия: Минковское расстояние симметрично,意味着 d(x, y)=d(y, x). Это свойство держится из-за того, что порядок вычитания в термах абсолютного значения не оказывает влияния на результат.
- Неравенство треугольника: Минковский расстояние удовлетворяет неравенству треугольника, заключающемуся в том, что для любых трех точек x, y и z расстояние от x до z не превышает суммы расстояний от x до y и от y до z; официально, d(x,z)≤d(x,y)+d(y,z). Эта свойство менее интуитивно доказать прямо из формулы и обычно требует более сложных математических приемов, но суть свойства заключается в том, что приемка прямой траектории между двумя точками является коротчайшим маршрутом.
Общее обобщение нормы
Минковский距离作为一个通用框架,通过规范的概念统一了在数学空间中测量距离的各种方法。简而言之,норма是一个函数,它为向量空间中的向量分配一个非负的长度或大小,本质上测量向量“长短”。通过调整Minkowski距离公式中的参数p
,我们可以平滑地过渡到不同的规范,每个规范都提供了一种独特的方法来计算向量长度。
например, когда p=1, Minkowski distance становится манhattанской нормой, измеряя расстояние как сумму абсолютных различий по каждому измерению — представьте себе навигацию по сетке городских улиц. При p=2 она превращается в евклидову норму, вычисляя прямолинейное (“как у ворона”) расстояние между точками. Когда p
приближается к бесконечности, она сходится к чебышевской норме, где расстояние определяется крупнейшим отдельным различием среди измерений. Эта гибкость позволяет Minkowski distance адаптироваться к различным математическим и практическим контекстам, делая ее универсальным инструментом для измерения расстояний в различных ситуациях.
Расчет Minkowski Distances в Python и R
Давайте исследуем реализации вычисления Minkowski Distances в Python и R. Мы рассмотрим доступные пакеты и библиотеки, которые могут этого достичь.
Пример Python
Чтобы вычислить Minkowski Distance в Python, мы можем использовать SciPy library, которая предоставляет эффективные реализации различных метрик расстояния. Вот пример, который вычисляет Minkowski Distance для различных значений p:
import numpy as np from scipy.spatial import distance # Примерные точки point_a = [2, 3] point_b = [5, 7] # Различные значения p p_values = [1, 2, 3, 10, np.inf] print("Minkowski distances using SciPy:") for p in p_values: if np.isinf(p): # Для p = бесконечность, использовать Chebyshev Distances dist = distance.chebyshev(point_a, point_b) print(f"p = ∞, Distance = {dist:.2f}") else: dist = distance.minkowski(point_a, point_b, p) print(f"p = {p}, Distance = {dist:.2f}")
Про运行此代码, читатели могут наблюдать, как расстояние изменяется с различными p значениями, подкрепляя концепции, которые были рассмотрены ранее в статье.
Minkowski distances using SciPy: p = 1, Distance = 7.00 p = 2, Distance = 5.00 p = 3, Distance = 4.50 p = 10, Distance = 4.02 p = ∞, Distance = 4.00
Этот код демонстрирует:
- Как использовать функции расстояния SciPy для расстояний Минковского и Чебышёва.
- Расчет расстояний для различных значений p, включая бесконечность.
- Связь между расстоянием Минковского и другими метриками (Манhattан, Евклидова, Чебышёва).
Пример R
Для R мы будем использовать функцию dist()
из библиотеки stats
:
# Определите функцию расстояния Минковского с помощью stats::dist minkowski_distance <- function(x, y, p) { points <- rbind(x, y) if (is.infinite(p)) { # Для p = Inf, используйте метод = "maximum" для расстояния Чебышёва distance <- stats::dist(points, method = "maximum") } else { distance <- stats::dist(points, method = "minkowski", p = p) } return(as.numeric(distance)) } # Пример использования point_a <- c(2, 3) point_b <- c(5, 7) # различные значения p p_values <- c(1, 2, 3, 10, Inf) cat("Minkowski distances between points A and B using stats::dist:\n") for (p in p_values) { distance <- minkowski_distance(point_a, point_b, p) if (is.infinite(p)) { cat(sprintf("p = ∞, Distance = %.2f\n", distance)) } else { cat(sprintf("p = %g, Distance = %.2f\n", p, distance)) } }
Этот код демонстрирует:
-
Как создать функцию
minkowski_distance
используя функциюdist()
изstats
. -
Обработка различных значений p, включая бесконечность для Chebyshev距离.
-
Calculation of Minkowski distance for various p values.
-
Форматирование вывода для отображения расстояний, округленных до двух десятичных знаков.
Вывод этого кода будет:
Minkowski distances between points A and B using stats::dist: p = 1, Distance = 7.00 p = 2, Distance = 5.00 p = 3, Distance = 4.50 p = 10, Distance = 4.02 p = ∞, Distance = 4.00
Эта реализация R являет собой соответствие Python-примера, позволяя читателям увидеть, как Minkowski距离 может быть вычислено в различных программных средах.
Заключение
Минковский расстояние предлагает гибкую и адаптивную стратегию для измерения расстояний в многомерных пространствах. его способность generalize другие общие метрики расстояний с помощью параметра p
делает его ценным инструментом во многих областях науки данных и машинного обучения. изменением p
, практики могут настроить свои вычисления расстояний на особенности их данных и требованиях их проектов, потенциально улучшая результаты во многих задачах, начиная от кластеризации и заканчивая обнаружением аномалий.
когда вы применяете Минковского расстояние в вашем собственном труде, мы убеждаем вас экспериментировать с различными значениями p и наблюдать их влияние на ваши результаты. для тех, кто хочет глубже узнать и развить свои навыки, мы рекомендуем исследовать курс Дизайн рабочих потоков машинного обучения на Python и рассмотреть нашу программу профессионального обучения Сертифицированный специалист по данным. эти ресурсы могут помочь вам укрепить ваши знания о метриках расстояний и эффективно применять их в различных ситуациях.
Source:
https://www.datacamp.com/tutorial/minkowski-distance