The Canberra distance between two vectors, A and B, is calculated as:
Canberra distance = Σ |Ai-Bi| / (|Ai| + |Bi|)
- Ai: The ith value in vector A
- Bi: The ith value in vector B
For example, suppose we have the following two vectors:
- A = [2, 4, 4, 6]
- B = [5, 5, 7, 8]
We would calculate the Canberra distance between A and B as:
- Canberra Distance = |2-5|/(2+5) + |4-5|/(4+5) + |4-7|/(4+7) + |6-8|/(6+8)
- Canberra Distance = 3/7 + 1/9 + 3/11 + 2/14
- Canberra Distance = 0.95527
The Canberra distance between these two vectors is 0.95527.
The following example shows how to calculate the Canberra distance between these exact two vectors in Python.
Example: Calculating Canberra Distance in Python
First, let’s create a NumPy array to hold each of our vectors:
import numpy as np #define two arrays array1 = np.array([2, 4, 4, 6]) array2 = np.array([5, 5, 7, 8])
Next, we can use the canberra() function from the SciPy package in Python to calculate the Canberra distance between the two vectors:
from scipy.spatial import distance #calculate Canberra distance between the arrays distance.canberra(array1, array2) 0.9552669552
The Canberra distance between the two vectors is 0.95527.
Notice that this value matches the one we calculated earlier by hand.
Note: You can find the complete documentation for the canberra() function from the SciPy package here.
The following tutorials explain how to calculate other common distance metrics in Python:
How to Calculate Euclidean Distance in Python
How to Calculate Manhattan Distance in Python
How to Calculate Hamming Distance in Python
How to Calculate Mahalanobis Distance in Python
How to Calculate Levenshtein Distance in Python