Den euklidischen Abstand verstehen: Von der Theorie zur Praxis
Der euklidische Abstand, ein Konzept, das auf die antike griechische Mathematik zurückgeht, ist zu einem unverzichtbaren Werkzeug in der modernen Datenwissenschaft, dem maschinellen Lernen und der räumlichen Analyse geworden. Diese nach dem berühmten Euklid benannte Metrik bietet eine grundlegende Möglichkeit, den geradlinigen Abstand zwischen Punkten im Raum zu messen, egal ob in zwei oder mehr Dimensionen.
Was ist der euklidische Abstand?
Der euklidische Abstand ist der kürzeste Weg zwischen zwei Punkten im euklidischen Raum. Es ist der Abstand, den du mit einem Lineal messen würdest, erweitert auf eine beliebige Anzahl von Dimensionen. Dieses Konzept ist tief im Satz des Pythagoras verwurzelt, der besagt, dass in einem rechtwinkligen Dreieck das Quadrat der Länge der Hypotenuse gleich der Summe der Quadrate der beiden anderen Seiten ist.
"Philosophen lehren euklidischen Abstand." Bild von Dall-E
Die euklidische Abstandsformel
Lasst uns die Formel für den euklidischen Abstand für verschiedene Dimensionen aufschlüsseln:
2D Euklidischer Abstand
In einer zweidimensionalen Ebene ist der euklidische Abstand zwischen den Punkten A(x₁, y₁) und B(x₂, y₂) gegeben durch:
Berechnen wir zum Beispiel den Abstand zwischen den Punkten A(1, 2) und B(4, 6):
2D-Visualisierung der euklidischen Distanz
Um den euklidischen 2D-Abstand besser zu verstehen, wollen wir ihn visualisieren:
2D Euklidischer Abstand. Bild vom Autor
Diese Visualisierung zeigt den euklidischen Abstand zwischen zwei Punkten in einer 2D-Ebene. Die rote Linie stellt die direkte Entfernung dar, während die gestrichelten Linien ein rechtwinkliges Dreieck bilden, das den Satz des Pythagoras in Aktion zeigt.
Euklidischer 3D-Abstand
Auf drei Dimensionen ausgedehnt, ergibt sich für die Punkte A(x₁, y₁, z₁) und B(x₂, y₂, z₂) die folgende Formel:
Visualisierung der euklidischen 3D-Distanz
Lass uns den euklidischen 3D-Abstand visualisieren:
Euklidischer 3D-Abstand. Bild vom Autor
Diese 3D-Darstellung zeigt den euklidischen Abstand zwischen zwei Punkten im dreidimensionalen Raum. Die grün gestrichelte Linie stellt die direkte Entfernung zwischen den Punkten dar.
N-dimensionaler euklidischer Abstand
In einem Raum mit n Dimensionen ist der euklidische Abstand zwischen den Punkten A(a₁, a₂, ..., aₙ) und B(b₁, b₂, ..., bₙ):
Das lässt sich mit der Summenschreibweise besser ausdrücken:
Beziehung zu Konzepten der linearen Algebra
Um den euklidischen Abstand zu verstehen, muss man nicht nur wissen, wie man den kürzesten Weg zwischen zwei Punkten misst. Es geht auch darum, diese Entfernungen durch die Linse der linearen Algebra zu sehen, einem Fachgebiet, das uns hilft, Probleme in Bezug auf Raum und Dimensionen mithilfe von Vektoren und ihren Eigenschaften zu beschreiben und zu lösen. Weitere Einblicke in dieses Thema erhältst du im Kurs Lineare Algebra für Datenwissenschaft in R, der diese Konzepte umfassend behandelt.
Euklidischer Abstand als Vektornorm
Der euklidische Abstand misst, wie weit zwei Punkte im Raum voneinander entfernt sind. Stell dir vor, du hast zwei Punkte, einen am Anfang eines Wanderweges und einen auf der Spitze eines Hügels. Den geradlinigen Weg, den du vom Start bis zum Gipfel zurücklegen würdest, kannst du dir als euklidische Distanz vorstellen. In der linearen Algebra ist das so, als würdest du die Länge eines Pfeils (oder Vektors) finden, der gerade vom Anfang des Weges (Punkt A) zur Spitze des Hügels (Punkt B) zeigt. Diese Länge wird als "Norm" des Vektors bezeichnet und ist nur ein schicker Ausdruck für die Länge des geradlinigen Pfades.
Punktprodukt und Kosinus des Winkels
Wenn es um Richtungen geht, hilft uns das Punktprodukt, den Winkel zwischen zwei beliebigen Pfeilen zu verstehen. Wenn du dich zum Beispiel an der Kreuzung zweier Straßen befindest, sagt dir das Punktprodukt, wie sehr die eine Straße auf die andere zeigt. Diese wird anhand der Längen der einzelnen Straßen (wie die Normen, über die wir gesprochen haben) und dem Winkel zwischen ihnen berechnet. Je näher dieser Wert bei 0 liegt, desto mehr nähern sich die Straßen einander an, da sie senkrecht zueinander stehen. Wenn du dies auf die Entfernung beziehst, hilft die Formel für das Punktprodukt dabei, die euklidische Entfernung in leichter zu handhabende Komponenten zu zerlegen, die zeigen, wie Richtungsänderungen die Gesamtentfernung beeinflussen.
Euklidischer Abstand und Vektorsubtraktion
Um den euklidischen Abstand zwischen zwei Punkten mithilfe von Vektoren zu bestimmen, subtrahierst du im Wesentlichen einen Punkt von einem anderen, um einen neuen Vektor zu erstellen. Dieser neue Vektor zeigt direkt von einem Punkt zum anderen und seine Länge ist der euklidische Abstand, an dem du interessiert bist. Das ist so, als würdest du den direkten Weg von deinem Haus zum nächsten Lebensmittelgeschäft auf einer Karte einzeichnen, indem du die Koordinaten subtrahierst; so erhältst du eine gerade Linie (oder einen Vektor), die den kürzesten Weg anzeigt, den du nehmen kannst.
Berechnung des euklidischen Abstands in Python und R
Wir werden uns die Implementierung der euklidischen Abstandsberechnung mit Python und R ansehen. Wir werden untersuchen, wie wir eigene Funktionen erstellen und integrierte Bibliotheken nutzen können, um die Effizienz zu steigern.
Python Beispiel
In Python können wir die Leistung von NumPy für effiziente Array-Operationen und SciPy für spezielle Abstandsberechnungen nutzen. Hier sehen wir, wie wir den euklidischen Abstand umsetzen können:
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}")
Wenn wir diesen Code ausführen, erwarten wir eine ähnliche Ausgabe wie diese:
2D Euclidean distance: 5.00
3D Euclidean distance: 7.07
3D Euclidean distance (SciPy): 7.07
Die SciPy-Funktion ist im Allgemeinen schneller und optimierter, vor allem bei hochdimensionalen Daten, aber unsere benutzerdefinierte Funktion hilft, die zugrunde liegende Berechnung zu veranschaulichen.
Werde ein ML-Wissenschaftler
R Beispiel
R bietet mehrere Möglichkeiten, den euklidischen Abstand zu berechnen. Wir erstellen eine eigene Funktion und vergleichen sie mit der Funktion dist()
aus der Bibliothek stats
.
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)))
Wenn du diesen R-Code ausführst, sollte die Ausgabe so aussehen:
[1] "2D Euclidean distance: 5"
[1] "3D Euclidean distance: 7.07"
[1] "3D Euclidean distance (built-in): 7.07"
Unsere benutzerdefinierte Funktion euclidean_distance
nutzt die vektorisierten Operationen von R, was sie übersichtlich und effizient macht. Die Funktion dist()
von stats
liefert das gleiche Ergebnis und bestätigt unsere benutzerdefinierte Funktion. Beide Methoden geben eine Matrix zurück.
Anwendungen des Euklidischen Abstands
Der euklidische Abstand ist eine einfache Methode, um zu messen, wie weit Dinge voneinander entfernt sind. Sie wird in verschiedenen Bereichen eingesetzt, um Probleme mit Raum und Entfernung zu lösen.
K-Nächste Nachbarn (KNN)
Beim k-nearest neighbors-Algorithmus hilft der euklidische Abstand, die nächsten Nachbarn eines Punktes zu finden. Dies hilft bei der Entscheidung, wie neue Daten zu klassifizieren sind, z. B. bei der Entscheidung, ob es sich bei einer E-Mail um Spam handelt, basierend darauf, wie ähnliche E-Mails aussehen, oder bei der Empfehlung von Produkten, die dem ähneln, was ein Kunde bereits mag.
K-means Clustering
Beim k-means Clustering hilft der euklidische Abstand dabei, Datenpunkte in Gruppen zu sortieren, indem er jeden Punkt mit dem nächstgelegenen Zentrum eines Clusters verbindet. Dies hilft bei der Einteilung von Daten in Kategorien, die Ähnlichkeiten aufweisen, was bei der Kundensegmentierung oder in der Forschung nützlich ist, um ähnliche Themen zusammenzufassen.
Multidimensionale Skalierung (MDS)
Die multidimensionale Skalierung nutzt den euklidischen Abstand, um komplexe Daten so zu vereinfachen, dass sie leichter zu visualisieren und zu verstehen sind. Es nimmt Daten, die normalerweise viele Details (Dimensionen) haben, und reduziert sie so, dass sie einfacher zu betrachten und zu analysieren sind und hilft, Trends und Muster klarer zu erkennen.
Bildbearbeitung
Bei Aufgaben wie der Erkennung von Kanten in Bildern oder der Erkennung von Objekten misst der euklidische Abstand, wie stark sich die Farben der Pixel ändern, was dabei hilft, Objekte zu umreißen oder wichtige Merkmale in einem Bild zu erkennen. Das ist z. B. in der medizinischen Bildgebung hilfreich, um Krankheiten zu erkennen, oder in Sicherheitssystemen, um Gesichter oder Objekte zu erkennen.
Robotik
Bei Robotern, wie Drohnen oder selbstfahrenden Autos, hilft die euklidische Distanz dabei, die einfachste Route von einem Punkt zum anderen zu berechnen. Das hilft Robotern und anderen automatisierten Systemen, sich effizient und sicher zu bewegen, Hindernissen auszuweichen und die einfachsten Wege zu ihren Zielen zu berechnen.
Vergleich mit anderen Distanzmetriken
Der euklidische Abstand ist eine von vielen Möglichkeiten, um zu messen, wie weit Punkte voneinander entfernt sind, aber unterschiedliche Situationen erfordern unterschiedliche Methoden. Hier siehst du, wie sie im Vergleich zu anderen gängigen Entfernungsmessungen abschneidet:
Manhattan Entfernung
Die Manhattan-Distanz wird auch als "City-Block"-Distanz bezeichnet und misst die Gesamtsumme der absoluten Unterschiede entlang jeder Dimension. Stell dir vor, du gehst durch die gitterförmigen Straßen einer Stadt. Die Entfernung, die du Block für Block zurücklegst, ist deine Manhattan-Distanz. Diese Methode ist besonders praktisch in Umgebungen, die ein Raster imitieren, wie z.B. bei der Navigation durch die Straßen einer Stadt oder in einigen Arten von Spielen. Sie ist auch nützlich, wenn du es mit sehr hochdimensionalen Daten zu tun hast, bei denen der euklidische Abstand weniger zuverlässig ist. Mehr darüber erfährst du in unserem Tutorial über die Manhattan-Distanz.
Kosinusabstand
Der Kosinusabstand betrachtet den Winkel zwischen zwei Punkten oder Vektoren. Anstatt sich darauf zu konzentrieren, wie lang die Linie zwischen ihnen ist, wird berücksichtigt, wie sie im Verhältnis zueinander ausgerichtet sind. Das macht sie besonders nützlich in Bereichen wie der Textanalyse oder Empfehlungssystemen, wo die Richtung der Daten (wie die Anzahl der Wörter in Artikeln oder die Präferenzen der Nutzer) wichtiger ist als die Größe (wie viel). Ein tieferes Verständnis findest du in unserem Artikel über den Kosinusabstand.
Tschebyscheff-Abstand
Die Tschebyscheff-Distanz ist eine andere Art der Abstandsmessung, die sich auf den größten Unterschied entlang einer Dimension konzentriert. Es ist wie beim Schachspiel: Der König zieht auf das Feld, das in der geringsten Anzahl von Zügen am weitesten entfernt ist, unabhängig davon, ob es horizontal, vertikal oder diagonal liegt. Diese Kennzahl ist besonders nützlich in Szenarien, in denen du nur die wichtigsten von mehreren Unterschieden berücksichtigen musst. Mehr dazu erfährst du in unserem Tutorial zum Tschebyscheff-Abstand.
Grenzen des euklidischen Abstands
Obwohl der euklidische Abstand aufgrund seiner intuitiven Natur und einfachen Berechnung weit verbreitet ist, hat er doch einige bemerkenswerte Einschränkungen. Diese zu verstehen, kann bei der Wahl des richtigen Abstandsmaßes oder bei der Anpassung der Daten helfen, um diese Probleme zu entschärfen.
Empfindlichkeit der Skala
Der euklidische Abstand kann durch den Maßstab der Merkmale unverhältnismäßig stark beeinflusst werden. In einem Datensatz, der Einkommen und Alter enthält, umfasst das Einkommen in der Regel einen viel größeren Bereich (vielleicht Tausende oder Zehntausende) als das Alter (in der Regel nur bis zu etwa 100). Diese Unterschiede können dazu führen, dass das Einkommen die Entfernungsberechnung überlagert und die Ergebnisse in Richtung seiner Größe verzerrt.
Mitigation: Die Normalisierung oder Standardisierung der Daten kann helfen, die Gewichtung der verschiedenen Merkmale auszugleichen und sicherzustellen, dass kein einzelnes Merkmal die Abstandsberechnung übermäßig beeinflusst.
Fluch der Dimensionalität
Der Fluch der Dimensionalität bezieht sich auf verschiedene Phänomene, die auftreten, wenn die Anzahl der Dimensionen in einem Datensatz zunimmt. Eine davon ist, dass das Konzept der "Nähe" oder "Entfernung" an Aussagekraft verliert - die Entfernungen nähern sich einander an, wodurch es schwierig wird, zwischen nahen und fernen Punkten zu unterscheiden.
Mitigation: Techniken wie die Hauptkomponentenanalyse(PCA) oder t-distributed stochastic neighbor embedding(t-SNE) reduzieren die Dimensionalität der Daten. Diese Methoden helfen dabei, die wesentlichen Merkmale mit der größten Varianz herauszudestillieren, was zur Vereinfachung der Daten beitragen kann.
Ausreißer-Empfindlichkeit
Die Berechnung des euklidischen Abstands kann auch stark von Ausreißern beeinflusst werden. In hochdimensionalen Räumen kann ein einziger Ausreißer die Abstände drastisch verändern, so dass einige Datenpunkte viel ähnlicher oder unterschiedlicher erscheinen, als sie tatsächlich sind.
Die Empfindlichkeit der linearen Regression gegenüber Ausreißern hängt nämlich mit dem Konzept des euklidischen Abstands zusammen. Das liegt daran, dass das Modell bei der linearen Regression die Summe der quadrierten Residuen minimiert, also die Unterschiede zwischen den beobachteten und den vorhergesagten Werten. Dabei wird im Wesentlichen der euklidische Abstand zwischen den beobachteten Datenpunkten und der Regressionslinie gemessen. Ausreißer können sich unverhältnismäßig stark auf diesen Abstand auswirken, weil das Quadrat größerer Abweichungen schneller zunimmt als das kleinerer Abweichungen.
Mitigation: Die Verwendung robusterer Metriken, die weniger empfindlich auf Ausreißer reagieren, kann helfen, wie z. B. der Manhattan-Abstand für bestimmte Datentypen. Außerdem kann eine Vorverarbeitung der Daten zur Identifizierung und Behandlung von Ausreißern - entweder durch deren Anpassung oder Entfernung - verhindern, dass sie die Abstandsberechnungen verfälschen.
Alternativer Ansatz: Eine andere Strategie ist die Berücksichtigung des gewichteten euklidischen Abstands. Bei dieser Variante des euklidischen Abstands werden die verschiedenen Dimensionen oder Merkmale unterschiedlich gewichtet, wobei diejenigen, die anfällig für Ausreißer oder Rauschen sind, möglicherweise weniger stark gewichtet werden.
Fazit
Wie wir bereits herausgefunden haben, ist der euklidische Abstand eine grundlegende Metrik in vielen analytischen und technischen Bereichen, die eine einfache Möglichkeit bietet, den geradlinigen Abstand zwischen Punkten zu messen. Das Verständnis und die Nutzung des euklidischen Abstands können die Genauigkeit und Effektivität vieler Anwendungen verbessern, von Algorithmen für maschinelles Lernen bis hin zu räumlichen Analysen.
Ich möchte dich ermutigen, in deinen Projekten mit dem euklidischen Abstand zu experimentieren und weitere Lernmöglichkeiten in Kursen wie Designing Machine Learning Workflows in Python und dem Kurs Anomaly Detection in Python zu entdecken.
Werde ein ML-Wissenschaftler
Bilde dich in Python weiter, um ein/e Wissenschaftler/in für maschinelles Lernen zu werden.
Als erfahrener Experte für Data Science, maschinelles Lernen und generative KI widmet sich Vinod der Weitergabe von Wissen und der Befähigung angehender Data Scientists, in diesem dynamischen Bereich erfolgreich zu sein.
Euklidischer Abstand FAQs
Warum ist der euklidische Abstand beim maschinellen Lernen wichtig?
Der euklidische Abstand hilft bei verschiedenen Algorithmen des maschinellen Lernens, indem er quantifiziert, wie ähnlich oder unterschiedlich Datenpunkte sind, was für Aufgaben wie Klassifizierung, Clustering und Anomalieerkennung wichtig ist.
Ist der euklidische Abstand immer die beste Wahl für die Messung von Entfernungen in der Datenwissenschaft?
Nicht immer. Die beste Abstandsmetrik hängt von der Art der Daten und dem spezifischen Problem ab. Die Manhattan-Distanz eignet sich zum Beispiel besser für hochdimensionale Daten oder Situationen, in denen eine gitterartige Bewegung repräsentativer ist.
Wie geht der euklidische Abstand mit negativen Koordinaten um?
Der euklidische Abstand misst die absolute Differenz zwischen den entsprechenden Koordinaten und behandelt alle Koordinaten gleich, egal ob sie positiv oder negativ sind.
Kann der euklidische Abstand für kategoriale Daten verwendet werden?
Nein, der euklidische Abstand erfordert in der Regel eine numerische Eingabe, um Abstände zu berechnen. Für kategoriale Daten werden alternative Methoden wie der Hamming-Abstand oder andere benutzerdefinierte Ähnlichkeitsmaße verwendet.
Wie wirkt sich die Wahl des euklidischen Abstands auf die Leistung von Clustering-Algorithmen wie k-means aus?
Die Verwendung des euklidischen Abstands in Clustering-Algorithmen wie K-means hat einen direkten Einfluss auf die Bildung von Clustern, da er die geometrischen Eigenschaften dieser Cluster bestimmt. Der euklidische Abstand neigt dazu, kugelförmige Cluster zu bilden, wobei der Mittelwert als Clusterzentrum dient. Dies kann sich auf die Clustering-Leistung auswirken, insbesondere wenn die natürlichen Cluster in den Daten nicht kugelförmig sind.