Hoe de afstand vanaf canberra in python te berekenen (met voorbeeld)


De Canberra-afstand tussen twee vectoren A en B wordt als volgt berekend:

Afstand vanaf Canberra = Σ |A i -B i | / (|A ik | + |B ik |)

Goud:

  • A i : De i- de waarde van vector A
  • B i : De i- de waarde in vector B

Stel dat we bijvoorbeeld de volgende twee vectoren hebben:

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

We berekenen de Canberra-afstand tussen A en B als volgt:

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

De Canberra-afstand tussen deze twee vectoren is 0,95527 .

Het volgende voorbeeld laat zien hoe u de Canberra-afstand tussen deze twee exacte vectoren in Python kunt berekenen.

Voorbeeld: Bereken de afstand vanaf Canberra in Python

Laten we eerst een NumPy-array maken waarin al onze vectoren kunnen worden opgeslagen:

 import numpy as np

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

Vervolgens kunnen we de functie canberra() uit het SciPy- pakket in Python gebruiken om de Canberra-afstand tussen de twee vectoren te berekenen:

 from scipy. spatial import distance

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

0.9552669552

De Canberra-afstand tussen de twee vectoren is 0,95527 .

Merk op dat deze waarde overeenkomt met de waarde die we eerder handmatig hebben berekend.

Opmerking : u kunt hier de volledige documentatie van de canberra() -functie van het SciPy- pakket vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere algemene afstandsmetrieken in Python kunt berekenen:

Hoe de Euclidische afstand in Python te berekenen
Hoe Manhattan-afstand in Python te berekenen
Hoe Hamming-afstand in Python te berekenen
Hoe Mahalanobis-afstand in Python te berekenen
Hoe de Levenshtein-afstand in Python te berekenen

Einen Kommentar hinzufügen

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