So berechnen sie die entfernung von canberra in python (mit beispiel)


Der Canberra-Abstand zwischen zwei Vektoren A und B wird wie folgt berechnet:

Entfernung von Canberra = Σ |A i -B i | / (|A i | + |B i |)

Gold:

  • A i : Der i-te Wert des Vektors A
  • B i : Der i- te Wert im Vektor B

Angenommen, wir haben die folgenden zwei Vektoren:

  • A = [2, 4, 4, 6]
  • B = [5, 5, 7, 8]

Wir würden die Canberra-Entfernung zwischen A und B wie folgt berechnen:

  • Entfernung von Canberra = |2-5|/(2+5) + |4-5|/(4+5) + |4-7|/(4+7) + |6-8|/(6+8 ) )
  • Entfernung von Canberra = 3/7 + 1/9 + 3/11 + 2/14
  • Entfernung von Canberra = 0,95527

Der Canberra-Abstand zwischen diesen beiden Vektoren beträgt 0,95527 .

Das folgende Beispiel zeigt, wie der Canberra-Abstand zwischen diesen beiden exakten Vektoren in Python berechnet wird.

Beispiel: Berechnen Sie die Entfernung von Canberra in Python

Erstellen wir zunächst ein NumPy-Array, das jeden unserer Vektoren enthält:

 import numpy as np

#define two arrays
array1 = np. array ([2, 4, 4, 6])
array2 = np. array ([5, 5, 7, 8])

Dann können wir die Funktion canberra() aus dem SciPy- Paket in Python verwenden, um den Canberra-Abstand zwischen den beiden Vektoren zu berechnen:

 from scipy. spatial import distance

#calculate Canberra distance between the arrays
distance. canberra (array1, array2)

0.9552669552

Der Canberra-Abstand zwischen den beiden Vektoren beträgt 0,95527 .

Beachten Sie, dass dieser Wert dem Wert entspricht, den wir zuvor manuell berechnet haben.

Hinweis : Die vollständige Dokumentation der Funktion canberra() aus dem SciPy- Paket finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere gängige Distanzmetriken in Python berechnen:

So berechnen Sie den euklidischen Abstand in Python
So berechnen Sie die Manhattan-Entfernung in Python
So berechnen Sie die Hamming-Distanz in Python
So berechnen Sie die Mahalanobis-Distanz in Python
So berechnen Sie die Levenshtein-Distanz in Python

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert