Minkowskiafstand: een uitgebreide gids

Afstandsmetrieken vormen de kern van vele algoritmen in data science en machine learning, die de meetbaarheid van gelijkenis of verschillen tussen data punten mogelijk maken. In deze handleiding zullen we de basisprincipes van de Minkowski-afstand bestuderen, haar mathematische eigenschappen en implementaties. We zullen onderzoeken hoe ze relateert aan andere algemene afstandsmethoden en haar toepassing demonstreren via codevoorbeelden in Python en R.

Of u nu kluizenalgoritmen ontwikkelt, werkt aan anomaliedetectie of fintuneert classificatieschema’s, kan het begrip van de Minkowski-afstand uw aanpak voor dataanalyse en modellen ontwikkeling verrijken. Laten we kijken.

Wat is de Minkowski-afstand?

De Minkowski-afstand is een universele maatstelling in gemene vectorruimten, vernoemd naar de Duitse wiskundige Hermann Minkowski. Het is een generalisatie van verschillende bekende afstandsmethodes, waardoor het een fundamenteel concept is in vele vakgebieden zoals wiskunde, computerwetenschap en dataanalyse.

In zijn kern biedt de Minkowski-afstand een manier om de afstand tussen twee punten in een meerdimensionale ruimte aan te geven. Wat hem in het bijzonder nuttig maakt, is zijn vermogen andere afstandsmethodes als specifieke gevallen te omvatten, voornamelijk door middel van een parameter p. Deze parameter laat de Minkowski-afstand toe om aan verschillende problemen ruimtes en data-eigenschappen aan te passen. Het algemeene formule voor de Minkowski-afstand is:

Waarin:

  • x en y twee punten zijn in een n-dimensionele ruimte

  • p is een parameter die bepaalt welke soort afstand wordt gebruikt (p ≥ 1)

  • |xi - yi|代表x和y在每一维度上的坐标绝对差

De Minkowski-afstand wordt gebruikt voor twee hoofdredenen. Eén daarvan is dat het u de flexibiliteit biedt om tussen de Manhattan- of Euclidean-afstanden te schakelen, afhankelijk van de behoeften. Tweede, het erkent dat niet alle gegevenssets (denk aan hoge dimensie ruimtes) goed passen bij een uitsluitend Manhattan of Euclidean afstand.

In de praktijk wordt het parameter p meestal gekozen door een train/test validatiewerkwijze te integreren. Door tijdens cross-validatie verschillende waarden van p te testen, kun je bepalen welke waarde de beste modelprestaties biedt voor uw specifieke gegevensset.

Hoe werkt de Minkowski-afstand

Bekijk hoe de Minkowski-afstand met andere afstandsformules gerelateerd is, en ga dan door een voorbeeld.

Generering van andere afstandmetrieken

Het eerste dat je over moet nadenken is hoe de Minkowski-afstandsformule de formules voor Manhattan, Euclidean en Chebyshev-afstand bevat.

Manhattan Afstand (p = 1):

Wanneer p is ingesteld op 1, wordt de Minkowski-afstand Manhattan-afstand.

Ook bekend als stadionafstand of L1-norm, de Manhattan Afstand meet de som van absolute verschillen.

Euclidean Afstand (p = 2):

Wanneer p is ingesteld op 2, wordt de Minkowski-afstand Euclidean-afstand.

Euclidische afstand is de meest voorkomende afstandsmaat, die de rechte lijnafstand tussen twee punten voorstelt.

Chebyshevafstand (p → ∞):

Chebyshev-afstand, ook bekend als schaakbordafstand, meet de maximale verschillen langs elke dimensie.

Bij het werken aan een voorbeeld

Om de functionaliteit en kracht van de Minkowskiafstand echt te begrijpen, laten we een voorbeeld doorlopen. Deze verkenning zal ons helpen begrip te krijgen hoe het parameter p de berekening en interpretatie van afstanden in meerdimensionale ruimtes beïnvloedt.

Considerar twee punten in een 2D ruimte:

  • Punt A: (2, 3)
  • Punt B: (5, 7)

We berekenen de Minkowskiafstand tussen deze punten voor verschillende p-waarden.

Het parameter p in de Minkowskiafstand formule bestuurt de gevoeligheid van de meetmethode voor verschillen in individuele componenten:

  • Bij p=1: Alle verschillen delen lineair.
  • Bij p=2: Grotere verschillen hebben een grotere invloed door de kwadraten.
  • Bij p>2: Wordt nog meer emphasis gelegd op grotere verschillen.
  • Bij p→∞: Enkel de maximale verschillen over alle dimensies zijn van belang.

Als p toeneemt, daalt de Minkowski-afstand meestal, totdat ze de Chebyshev-afstand benadert. Dit komt omdat hogere p-waarden meer gewicht geven aan de grootste verschillen en minder aan kleinere verschillen.

Om te zien hoe verschillende waarden van p de afstandsberekening tussen onze punten A(2, 3) en B(5, 7) beïnvloeden, laten we de volgende grafiek onderzoeken:

Bij het bestuderen van de grafiek zie we hoe de afstandsmaat verandert als p toeneemt:

  • De Manhattan-afstand (p=1), weergegeven door de groene lijn, levert de langste weg op, want ze volgt strikt het raster.
  • De Euclidische afstand (p=2), getoond door de oranje rechte lijn, biedt een directe, rechte lijn.
  • De Chebyshev-afstand (p=∞), weergegeven door de rode gestippelde lijnen, richt zich alleen op de grootste coördinatenverschillen, waardoor een pad wordt gevormd dat maximale voortgang in één dimensie weet te bewerkstelligen voordat het de andere gaat aanpakken.
  • De Minkowski-afstand met p=3 in paars toont een lichte boog, wat een indicatie geeft van de overgang tussen Euclidische en Chebyshev-afstanden.

Deze visualisatie helpt ons te begrijpen waarom verschillende p-waarden voor verschillende toepassingen kunnen worden gekozen. Bijvoorbeeld, de Manhattan-afstand kan beter passen bij stedelijke navigatieve problemen, terwijl de Euclidische afstand vaak wordt gebruikt bij ruimtelijke berekingen. Hogere p-waarden, zoals in het geval van de Minkowski p=3, kunnen nuttig zijn in situaties waar grotere verschillen moeten worden benaderd en de Chebyshev-afstand misschien wordt gekozen als de maximale verschillen in elke dimensie het meest kritieke factor zijn.

Toepassingen van de Minkowski-afstand.

De Minkovski-afstand, met zijn aanpasbare parameter p, is een flexibel gereedschap dat wordt gebruikt in verschillende gebieden. door p te veranderen, kunnen we aanpassen hoe we de afstand tussen punten meten, waardoor het geschikt is voor verschillende taken. Hieronder zijn vier toepassingen waar de Minkowski-afstand een belangrijke rol speelt.

Machine learning en data science

In machine learning en data science is de Minkowski-afstand de basis voor algoritmen die afhankelijk zijn van het meten van de gelijkenis of verschillen tussen data-punten. Een opvallend voorbeeld is de k-Nearest Neighbors (k-NN) algoritme, die gegevenspunten classificeert op basis van de categorieën van hun dichtstbijzijnde buren. Door Minkowski-afstand te gebruiken, kunnen we de parameter p aanpassen om te veranderen hoe we de “dichtbijheid” tussen punten berekenen.

Patroonherkenning

Patroonherkenning bestaat uit het herkennen van patronen en regelmatigheid in gegevens, zoals handtekeningherkenning of detectie van gezichtskenmerken. In dit context meet de Minkowski-afstand de verschillen tussen vectoren van kenmerken die patronen representeren. Bijvoorbeeld, in beeldherkenning kan elk beeld worden gerepresenteerd door een vector van pixelwaarden. Berekening van de Minkowski-afstand tussen deze vectoren laat ons zien hoe veel de beelden aan elkaar lijken of verschillen.

Door p aan te passen, kunnen we de gevoeligheid van de afstandsmoeilijkheid voor verschillen in specifieke kenmerken beheersen. Een lager p zou wellicht de algemene verschillen over alle pixels beschouwen, terwijl een hoger p significante verschillen in bepaalde gebieden van de afbeelding kunnen benadrukken.

Anomooledetectie

Anomooledetectie heeft als doel data-punten te identificeren die significant afwijken van de meerderheid, wat belangrijk is in gebieden als fraude Detectie, netwerkbeveiliging en foutenopsporing in systemen. Minkowski-afstand wordt gebruikt om te meten hoe ver een data-punt verwijderd is van andere punten in het dataset. Punten met grote afstanden zijn potentiële anomalies. door een geschikte p te kiezen, kunnen analisten de gevoeligheid van anomooledetectiesystemen verbeteren voor de soort afwijkingen die het meest relevant zijn voor hun specifieke context.

Computatiele geometrie en ruimtelijke analyse

In de computatorische geometrie en ruimtelijke analyse wordt de Minkowski-afstand gebruikt om afstanden tussen punten in ruimte te berekenen, die de basis vormt voor veel geometrische algoritmen. Bijvoorbeeld, botsingsdetectie in deze domeinen gaat uit van de Minkowski-afstand om vast te stellen wanneer objecten dicht genoeg zijn om te interactieven. Door p aan te passen, kunnen ontwikkelaars diverse botsingsranden creëren, van hoekig (lager p) tot afgerond (hoger p).

Buiten botsingsdetectie kan de Minkowski-afstand nuttig zijn in ruimtelijke clustering en vormanalyse. Wijzigen van de waarde van p laat onderzoekers verschillende aspecten van ruimtelijke relaties uitdrukken, van stadion afstanden tot algemene vormverwantschappen.

Wiskundige eigenschappen van de Minkowski-afstand

De Minkowski-afstand is niet alleen een veelzijdig instrument in praktische toepassingen maar ook een belangrijk concept in de wiskundige theorie, vooral in het onderzoek naar meetruimten en normen.

Meetruimte eigenschappen

De Minkowski-afstand bevat de vier essentiële eigenschappen die nodig zijn voor een functie om als meetfunctie in een meetruimte te worden beschouwd:

  • Negatief geenheid: De Minkowski-afstand tussen elke twee punten is altijd niet-negatief, d(x,y)≥0. Dit is evident omdat het de p-de wortel is van een som van niet-negatieve termen (绝对值 die tot de macht p worden opgetrokken).
  • Identiteit onderscheidbaar: De Minkowski-afstand tussen twee punten is nul als en alleen als de twee punten identiek zijn. Mathemtisch gezien is d(x,y) = 0 als en alleen als x=y. Dit volgt omdat de absolute verschillen tussen identieke componenten nul zijn.
  • Symmetrie: De Minkowski-afstand is symmetrisch, wat betekend dat d(x,y)=d(y,x). Deze eigenschap geldt omdat de volgorde van de aftrekking in de absolute waarden termen geen invloed heeft op het resultaat.
  • Triangleongelijkheid: De Minkowskidistantie voldoet aan de driehoekongelijkheid, die stelt dat voor elke drie punten x, y en z, de afstand van x naar z hoogstens de som is van de afstand van x naar y en van y naar z; formeel, d(x,z)≤d(x,y)+d(y,z). Deze eigenschap is minder intuitief te bewijzen direct uit de formule en vereist meestal meer geavanceerde wiskunde, maar zorgt essentieel ervoor dat de kortste route tussen twee punten wordt genomen.

Normale generalisatie

De Minkowski-afstand dient als een algemeen kader dat verschillende manieren verenigt om afstanden in mathematische ruimtes te meten aan de hand van het concept van normen. In simpele termen is een norm een functie die een niet-negatieve lengte of grootte toekent aan een vector in een vectorruimte, die in essentie meet hoe “lang” de vector is. door de parameter p in de Minkowski-afstandsformule aan te passen, kunnen we gemakkelijk overgaan naar verschillende normen, elk biedende een unieke methode voor het berekenen van de lengte van een vector.

Bijvoorbeeld, als p=1, wordt de Minkowski-afstand een Manhattannorm, die afstand meet door de som van absolute verschillen langs elke dimensie te berekenen – denk aan het navigeren door een grid van stadstrassen. Bij p=2 wordt ze een Euclidische norm, die de rechte lijnafstand (“als de vogel vliegt”) tussen punten berekent. Met name als p naar de oneindigheid toe gaat, convergeert deze naar de Chebyshevnorm, waarin de afstand bepaald wordt door de grootste enige verschillen tussen dimensies. Deze flexibiliteit maakt de Minkowski-afstand geschikt voor diverse mathematische en praktische contexten, waardoor ze een veelzijdig instrument is voor het meten van afstanden in verschillende scenario’s.

Berekening van de Minkovski-afstand in Python en R

Laten we de implementaties van de Minkovski-afstand bekijken met behulp van zowel Python als R. We zullen kijken naar beschikbare pakketten en bibliotheken die dit kunnen berekenen.

Pythonvoorbeeld

Om de Minkovski-afstand in Python te berekenen, kunnen we de SciPy-bibliotheek gebruiken, die efficiënte implementaties van diverse afstandsmetriken biedt. Hieronder is een voorbeeld dat de Minkovski-afstand berekt voor verschillende p-waarden:

import numpy as np from scipy.spatial import distance # Voorbeeldpunten point_a = [2, 3] point_b = [5, 7] # Verschillende p-waarden p_values = [1, 2, 3, 10, np.inf] print("Minkowski distances using SciPy:") for p in p_values: if np.isinf(p): # Voor p = oneindig, gebruik de Chebyshev-afstand 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}")

Door dit code uit te voeren, kunnen lezers observeren hoe de afstand verandert met verschillende p-waarden, wat de concepten uit het artikel dat eerder besproken zijn, versterkt.

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

Dit code toont:

  1. Hoe gebruik je de afstandsfuncties van SciPy voor Minkowski- en Chebyshev-afstanden.
  2. Berekening van afstanden voor verschillende p-waarden, inclusief oneindigheid.
  3. Het verband tussen Minkowski-afstand en andere meetkundige afstanden (Manhattan, Euclidean, Chebyshev).

Voorbeeld in R

Voor R zullen we de dist()-functie van de stats-bibliotheek gebruiken:

# Definieer de Minkowski-afstandsfunctie met behulp van stats::dist minkowski_distance <- function(x, y, p) { points <- rbind(x, y) if (is.infinite(p)) { # Voor p = Inf, gebruik method = "maximum" voor Chebyshev-afstand distance <- stats::dist(points, method = "maximum") } else { distance <- stats::dist(points, method = "minkowski", p = p) } return(as.numeric(distance)) } # Voorbeeld van gebruik point_a <- c(2, 3) point_b <- c(5, 7) # Verschillende p-waarden 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)) } }

Dit code laat zien:

  1. Hoe maak je een functie minkowski_distance aan gebruikmakende van de dist() functie van stats.

  2. Verwerking van verschillende p-waarden, inclusief oneindig voor de Chebyshev-afstand.

  3. Berekening van de Minkowski-afstand voor verschillende p-waarden.

  4. Opmaak van het resultaat om afstanden afgerond tot 2 decimalen weer te geven.

Het resultaat van dit code is:

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

Deze R implementatie biedt een tegenhanger aan van het Python voorbeeld, wat lezers toestaat te zien hoe de Minkowski-afstand in verschillende programmerenomgevingen kan worden berekend.

Conclusie

De Minkovskidistante biedt een flexibel en aanpasbaar concept voor het meten van afstanden in meerdimensionale ruimtes. Door de parameter p te gebruiken, kan deze gemakkelijk andere gangbare afstandsmetrieken generaliseren, waardoor het een nuttig gereedschap is in veelgebruikte domeinen binnen datacience en machinelearning. Door p aan te passen, kunnen professionals hun afstandenberekeningen aanpassen aan de specifieke eigenschappen van hun gegevens en de vereisten van hun projecten, wat de resultaten in taken zoals clustering en anomaliedetectie kunnen verbeteren.

Als u de Minkovskidistante in uw eigen werk toepast, raden we u aan verschillende p-waarden uit te proberen en hun impact op uw resultaten te observeren. Voor wie zijn kennis en vaardigheden wil verdiepen, raden we aan de cursus Designing Machine Learning Workflows in Python te verkennen en onze Data Scientist Certification carrièreprogramma te overwegen. Deze bronnen kunnen helpen bij het aanvullen van uw kennis van afstandsmetrieken en hun effectieve toepassing in verschillende scenario’s.

Source:
https://www.datacamp.com/tutorial/minkowski-distance