De Euclidische afstand, een concept dat teruggaat tot de oude Griekse wiskunde, is uitgegroeid tot een onmisbaar hulpmiddel in moderne data science, machine learning en ruimtelijke analyse. Genoemd naar de beroemde Euclides, biedt deze maatstaf een fundamentele manier om de kortste rechte afstand tussen punten in de ruimte te meten, of dat nu in twee dimensies is of in nog veel meer.
Wat is Euclidische afstand?
Euclidische afstand stelt het kortste pad voor tussen twee punten in een Euclidische ruimte. Het is de afstand die je met een liniaal zou meten, uitgebreid naar elk aantal dimensies. Dit concept is diep geworteld in de stelling van Pythagoras, die stelt dat in een rechthoekige driehoek het kwadraat van de lengte van de hypotenusa gelijk is aan de som van de kwadraten van de andere twee zijden.

“Filosoof die Euclidische afstand onderwijst.” Afbeelding door Dall-E
De formule voor Euclidische afstand
Laten we de formule voor Euclidische afstand uitsplitsen voor verschillende dimensies:
2D Euclidische afstand
In een tweedimensionaal vlak wordt de Euclidische afstand tussen punten A(x₁, y₁) en B(x₂, y₂) gegeven door:

Laten we bijvoorbeeld de afstand berekenen tussen de punten A(1, 2) en B(4, 6):

Visualisatie van 2D Euclidische afstand
Om 2D Euclidische afstand beter te begrijpen, visualiseren we het:

2D Euclidische afstand. Afbeelding door auteur
Deze visualisatie laat de Euclidische afstand zien tussen twee punten in een 2D-vlak. De rode lijn stelt de directe afstand voor, terwijl de stippellijnen een rechthoekige driehoek vormen, waarmee de stelling van Pythagoras in actie wordt getoond.
3D Euclidische afstand
Uitgebreid naar drie dimensies, voor punten A(x₁, y₁, z₁) en B(x₂, y₂, z₂), wordt de formule:

Visualisatie van 3D Euclidische afstand
Laten we de 3D Euclidische afstand visualiseren:

3D Euclidische afstand. Afbeelding door auteur
Deze 3D-plot toont de Euclidische afstand tussen twee punten in een driedimensionale ruimte. De groene stippellijn geeft de directe afstand tussen de punten weer.
N-dimensionale Euclidische afstand
In een ruimte met n dimensies is de Euclidische afstand tussen punten A(a₁, a₂, ..., aₙ) en B(b₁, b₂, ..., bₙ):

Dit kan compacter worden geschreven met somnotatie:

Relatie met concepten uit de lineaire algebra
Euclidische afstand begrijpen gaat verder dan alleen weten hoe je het kortste pad tussen twee punten meet. Het gaat er ook om deze afstanden te bekijken door de lens van lineaire algebra, een vakgebied dat ons helpt problemen over ruimte en dimensies te beschrijven en op te lossen met vectoren en hun eigenschappen. Voor meer inzicht in dit onderwerp kun je de cursus Linear Algebra for Data Science in R verkennen, die deze concepten uitgebreid behandelt.
Euclidische afstand als vectornorm
Euclidische afstand meet hoe ver twee punten in de ruimte uit elkaar liggen. Stel je voor dat je twee punten hebt: één bij het begin van een wandelpad en één op de top van een heuvel. Het rechte pad dat je van het begin naar de top zou lopen, kun je zien als de Euclidische afstand. In de lineaire algebra is dit vergelijkbaar met het bepalen van de lengte van een pijl (of vector) die recht wijst van het begin van het pad (punt A) naar de top van de heuvel (punt B). Deze lengte heet de “norm” van de vector, een chic woord voor de lengte van dit rechte pad.
Inwendig product en de cosinus van de hoek
Wanneer je met richtingen werkt, helpt het inwendig product ons de hoek tussen twee pijlen te begrijpen. Als je bijvoorbeeld op het kruispunt van twee wegen staat, vertelt het inwendig product je in welke mate de ene weg in de richting van de andere wijst. Dit wordt berekend met de lengtes van elke weg (zoals de normen die we noemden) en de hoek ertussen. Hoe dichter deze waarde bij 0 ligt, hoe meer de wegen loodrecht op elkaar staan. In relatie tot afstand helpt de formule voor het inwendig product om de Euclidische afstand op te splitsen in beter hanteerbare componenten, en laat zien hoe veranderingen in richting de totale afstand beïnvloeden.
Euclidische afstand en vectorsubtractie
Om de Euclidische afstand tussen twee punten met vectoren te vinden, trek je in feite het ene punt van het andere af om een nieuwe vector te creëren. Deze nieuwe vector wijst rechtstreeks van het ene punt naar het andere en de lengte ervan is de Euclidische afstand waarin je geïnteresseerd bent. Het is alsof je een directe route op een kaart tekent van je huis naar de dichtstbijzijnde supermarkt door hun coördinaten van elkaar af te trekken; dat levert een rechte lijn (of vector) op die het kortste pad laat zien.
Euclidische afstand berekenen in Python en R
Laten we implementaties van Euclidische-afstandsberekeningen in zowel Python als R verkennen. We bekijken hoe je eigen functies maakt en ingebouwde libraries gebruikt om de efficiëntie te vergroten.
Python-voorbeeld
In Python kunnen we de kracht van NumPy benutten voor efficiënte array-bewerkingen en SciPy voor gespecialiseerde afstandsberekeningen. Zo kun je Euclidische afstand implementeren:
import numpy as np
from scipy.spatial.distance import euclidean
def euclidean_distance(point1, point2):
return np.sqrt(np.sum((np.array(point1) - np.array(point2))**2))
# 2D example
point_a = (1, 2)
point_b = (4, 6)
distance_2d = euclidean_distance(point_a, point_b)
print(f"2D Euclidean distance: {distance_2d:.2f}")
# 3D example
point_c = (1, 2, 3)
point_d = (4, 6, 8)
distance_3d = euclidean_distance(point_c, point_d)
print(f"3D Euclidean distance: {distance_3d:.2f}")
# Using SciPy for efficiency
distance_scipy = euclidean(point_c, point_d)
print(f"3D Euclidean distance (SciPy): {distance_scipy:.2f}")
Als we deze code draaien, verwachten we output die lijkt op:
2D Euclidean distance: 5.00
3D Euclidean distance: 7.07
3D Euclidean distance (SciPy): 7.07
De SciPy-functie is over het algemeen sneller en meer geoptimaliseerd, vooral voor hoog-dimensionale data, maar onze eigen functie helpt de onderliggende berekening te illustreren.
R-voorbeeld
R biedt verschillende manieren om Euclidische afstand te berekenen. We maken een eigen functie en vergelijken die met de dist()-functie uit de stats-bibliotheek.
euclidean_distance <- function(point1, point2) {
sqrt(sum((point1 - point2)^2))
}
# 2D example
point_a <- c(1, 2)
point_b <- c(4, 6)
distance_2d <- euclidean_distance(point_a, point_b)
print(paste("2D Euclidean distance:", round(distance_2d, 2)))
# 3D example
point_c <- c(1, 2, 3)
point_d <- c(4, 6, 8)
distance_3d <- euclidean_distance(point_c, point_d)
print(paste("3D Euclidean distance:", round(distance_3d, 2)))
# Using the dist() function from stats
distance_builtin <- stats::dist(rbind(point_c, point_d), method = "euclidean")
print(paste("3D Euclidean distance (built-in):", round(as.numeric(distance_builtin), 2)))
Het draaien van deze R-code zou output moeten geven zoals:
[1] "2D Euclidean distance: 5"
[1] "3D Euclidean distance: 7.07"
[1] "3D Euclidean distance (built-in): 7.07"
Onze eigen functie euclidean_distance gebruikt de gevectoriseerde operaties van R, waardoor deze beknopt en efficiënt is. De functie dist() uit stats levert hetzelfde resultaat op en valideert zo onze eigen functie. Beide methoden geven een matrix terug.
Toepassingen van Euclidische afstand
Euclidische afstand is een eenvoudige manier om te meten hoe ver dingen uit elkaar liggen. Het wordt in allerlei domeinen gebruikt om problemen met ruimte en afstand aan te pakken.
K-nearest neighbors (KNN)
In het k-nearest neighbors-algoritme helpt Euclidische afstand de dichtstbijzijnde buren van een punt te vinden. Dit helpt bij het classificeren van nieuwe data—zoals beslissen of een e-mail spam is op basis van hoe vergelijkbare e-mails eruitzien, of producten aanbevelen die lijken op wat een klant al leuk vindt.
K-means clustering
Bij k-means clustering helpt Euclidische afstand om datapunten in groepen te verdelen door elk punt te koppelen aan het dichtstbijzijnde clustercentrum. Dit helpt om data te ordenen in categorieën die overeenkomsten delen, handig bij klantsegmentatie of in onderzoek om vergelijkbare onderwerpen te groeperen.
Multidimensionale schaling (MDS)
Multidimensionale schaling gebruikt Euclidische afstand om complexe data te vereenvoudigen tot iets dat makkelijker te visualiseren en te begrijpen is. Het brengt data met veel details (dimensies) terug zodat het eenvoudiger te bekijken en te analyseren is, waardoor trends en patronen duidelijker naar voren komen.
Beeldverwerking
Bij taken als randdetectie in afbeeldingen of objectherkenning meet Euclidische afstand hoeveel pixelkleuren veranderen, wat helpt bij het omlijnen van objecten of het identificeren van belangrijke kenmerken in een beeld. Dit is nuttig in zaken als medische beeldvorming om ziekten te herkennen, of in beveiligingssystemen om gezichten of objecten te herkennen.
Robotica
Voor robots, zoals drones of zelfrijdende auto’s, helpt Euclidische afstand bij het berekenen van de eenvoudigste route van punt A naar punt B. Dit helpt robots en andere geautomatiseerde systemen efficiënt en veilig te bewegen, obstakels te vermijden en de makkelijkste paden naar hun bestemming te berekenen.
Vergelijking met andere afstandsmetriek
Euclidische afstand is een van de vele manieren om te meten hoe ver punten uit elkaar liggen, maar verschillende situaties vragen om verschillende methoden. Zo verhoudt het zich tot andere veelgebruikte afstandsmetriek:
Manhattan-afstand
Ook wel “city block”-afstand genoemd, meet de Manhattan-afstand de totale som van de absolute verschillen langs elke dimensie. Stel je voor dat je door de rasterachtige straten van een stad loopt; de afstand die je blok voor blok aflegt, is je Manhattan-afstand. Deze methode is vooral handig in omgevingen die op een raster lijken, zoals het navigeren door stadsstraten of in sommige soorten games. Het is ook nuttig bij zeer hoog-dimensionale data, waar Euclidische afstand minder betrouwbaar kan worden. Wil je meer weten, bekijk dan onze tutorial over Manhattan-afstand.
Cosinusafstand
Cosinusafstand kijkt naar de hoek tussen twee punten of vectoren. In plaats van te focussen op hoe lang de lijn tussen hen is, bekijkt het hoe ze zich ten opzichte van elkaar oriënteren. Dit is vooral nuttig in vakgebieden als tekstanalyse of aanbevelingssystemen, waar de richting van de data (zoals woordentellingen in artikelen of gebruikersvoorkeuren) belangrijker is dan de grootte (hoeveel). Voor een diepere uitleg, zie ons artikel over cosinusafstand.
Chebyshev-afstand
Chebyshev-afstand is een andere manier om afstand te meten en richt zich op het grootste verschil langs een willekeurige dimensie. Het is alsof je schaak speelt: de koning beweegt naar het vakje dat het verst weg is in het minimum aantal zetten, ongeacht of dat horizontaal, verticaal of diagonaal is. Deze metriek is vooral nuttig in situaties waarin je alleen met het meest significante van meerdere verschillen rekening wilt houden. Lees meer in onze tutorial over Chebyshev-afstand.
Beperkingen van Euclidische afstand
Hoewel Euclidische afstand veel wordt gebruikt vanwege de intuïtieve aard en de eenvoudige berekening, zijn er enkele noemenswaardige beperkingen. Als je deze begrijpt, kun je de juiste afstandsmaat kiezen of de data aanpassen om deze problemen te beperken.
Gevoeligheid voor schaal
Euclidische afstand kan onevenredig worden beïnvloed door de schaal van de kenmerken. In een dataset met bijvoorbeeld inkomen en leeftijd bestrijkt inkomen doorgaans een veel groter bereik (misschien duizenden of tienduizenden) vergeleken met leeftijd (meestal slechts tot ongeveer 100). Dit verschil kan ertoe leiden dat inkomen de afstandsberekening domineert en de resultaten richting die schaal verschuiven.
Mitigatie: Normaliseren of standaardiseren van de data kan de schalen van verschillende kenmerken in balans brengen, zodat geen enkel kenmerk de afstandsberekening onnodig beïnvloedt.
Vloek van dimensionaliteit
De vloek van dimensionaliteit verwijst naar verschillende verschijnselen die optreden naarmate het aantal dimensies in een dataset toeneemt. Een daarvan is dat het concept van ‘nabijheid’ of ‘afstand’ minder betekenisvol wordt—afstanden hebben de neiging te convergeren, waardoor het moeilijk wordt om effectief onderscheid te maken tussen nabije en verre punten.
Mitigatie: Technieken zoals principalecomponentenanalyse (PCA) of t-distributed stochastic neighbor embedding (t-SNE) verlagen de dimensionaliteit van de data. Deze methoden destilleren de essentiële kenmerken met de meeste variantie, wat helpt om de data te vereenvoudigen.
Gevoeligheid voor uitschieters
Berekeningen met Euclidische afstand kunnen ook sterk worden beïnvloed door uitschieters. In hoog-dimensionale ruimten kan één enkele uitschieter afstanden drastisch veranderen, waardoor sommige datapunten veel meer vergelijkbaar of verschillend lijken dan ze in werkelijkheid zijn.
Sterker nog, de gevoeligheid van lineaire regressie voor uitschieters hangt samen met het concept van Euclidische afstand. In lineaire regressie minimaliseert het model namelijk de som van gekwadrateerde residuen, de verschillen tussen geobserveerde en voorspelde waarden. Dit komt neer op het meten van de Euclidische afstand tussen de geobserveerde datapunten en de regressielijn. Uitschieters kunnen deze afstand onevenredig beïnvloeden, omdat het kwadraat van grotere afwijkingen sneller toeneemt dan dat van kleinere.
Mitigatie: Het gebruik van robuustere metriek die minder gevoelig is voor uitschieters kan helpen, zoals de Manhattan-afstand voor bepaalde soorten data. Daarnaast kan het voorbewerken van data om uitschieters te identificeren en te behandelen—door ze aan te passen of te verwijderen—voorkomen dat ze de afstandsberekeningen vertekenen.
Alternatieve aanpak: Het overwegen van gewogen Euclidische afstand is een andere strategie. Deze variant van Euclidische afstand kent verschillende gewichten toe aan verschillende dimensies of kenmerken, en kan zo die kenmerken lager wegen die gevoelig zijn voor uitschieters of ruis.
Conclusie
Zoals we hebben gezien, is Euclidische afstand een fundamentele metriek in veel analytische en technologische velden. Het biedt een eenvoudige manier om de rechte lijnafstand tussen punten te meten. Inzicht in en gebruik van Euclidische afstand kan de nauwkeurigheid en effectiviteit van veel toepassingen vergroten, van machine learning-algoritmen tot ruimtelijke analyse.
Ik moedig je aan om met Euclidische afstand te experimenteren in je projecten en verdere leerpaden te verkennen via cursussen zoals Designing Machine Learning Workflows in Python en de Anomaly Detection in Python Course.
Vinod Chugani begon zijn carrière in Tokio als JPMorgans jongste Head van de Hedge Fund Sales Desk en vestigde later een individueel verkooprecord bij Lehman Brothers, bouwde daarna een elektronicadistributiebedrijf in 30 landen uit tot voorbij SG$100 miljoen omzet en maakte vervolgens de overstap naar data. Als afgestudeerde Economie aan Duke en alumnus van de NYC Data Science Academy was hij een van de drie beursontvangers uit meer dan 100 aanmeldingen voor Hugo Bowne-Andersons Building AI Applications-cursus op Maven. Tegenwoordig schrijft hij voor DataCamp, KDnuggets, Machine Learning Mastery en Statology over onderwerpen van statistiek tot agentische AI, en coacht hij dataprofessionals bij de NYC Data Science Academy met meer dan 1.000 één-op-één-sessies op zijn naam.
Veelgestelde vragen over Euclidische afstand
Waarom is Euclidische afstand belangrijk in machine learning?
Euclidische afstand helpt bij verschillende machine learning-algoritmen door te kwantificeren hoe vergelijkbaar of verschillend datapunten zijn, wat belangrijk is voor taken als classificatie, clustering en anomaliedetectie.
Is Euclidische afstand altijd de beste keuze om afstanden te meten in data science?
Niet altijd. De beste afstandsmetriek hangt af van het datatype en het specifieke probleem. Zo kan Manhattan-afstand geschikter zijn voor hoog-dimensionale data of situaties waarin rasterachtige beweging representatiever is.
Hoe gaat Euclidische afstand om met negatieve coördinaten?
Euclidische afstand meet het absolute verschil tussen overeenkomstige coördinaten en behandelt alle coördinaten gelijk, of ze nu positief of negatief zijn.
Kan Euclidische afstand worden gebruikt met categorische data?
Nee, Euclidische afstand vereist over het algemeen numerieke input om afstanden te berekenen. Alternatieve methoden zoals Hamming-afstand of andere aangepaste similariteitsmaten worden gebruikt voor categorische data.
Hoe beïnvloedt de keuze voor Euclidische afstand de prestaties van clusteringalgoritmen zoals k-means?
Het gebruik van Euclidische afstand in clusteringalgoritmen zoals k-means beïnvloedt rechtstreeks hoe clusters gevormd worden, omdat het de geometrische eigenschappen van deze clusters bepaalt. Euclidische afstand neigt naar bolvormige clusters, waarbij het gemiddelde dient als clustercentrum. Dit kan de clusteringprestatie beïnvloeden, vooral wanneer de natuurlijke clusters in de data niet bolvormig zijn.

