Python でキャンベラからの距離を計算する方法 (例あり)
2 つのベクトル A と B の間のキャンベラ距離は次のように計算されます。
キャンベラからの距離 = Σ |A i -B i | / (|A i | + |B i |)
金:
- A i : ベクトル A のi 番目の値
- Bi : ベクトル B の i番目の値
たとえば、次の 2 つのベクトルがあるとします。
- A = [2、4、4、6]
- B = [5、5、7、8]
A と B の間のキャンベラ距離は次のように計算します。
- キャンベラからの距離 = |2-5|/(2+5) + |4-5|/(4+5) + |4-7|/(4+7) + |6-8|/(6+8) ))
- キャンベラからの距離 = 3/7 + 1/9 + 3/11 + 2/14
- キャンベラからの距離 = 0.95527
これら 2 つのベクトル間のキャンベラ距離は0.95527です。
次の例は、Python でこれら 2 つの正確なベクトル間のキャンベラ距離を計算する方法を示しています。
例: Python でキャンベラからの距離を計算する
まず、各ベクトルを保持する NumPy 配列を作成しましょう。
import numpy as np #define two arrays array1 = np. array ([2, 4, 4, 6]) array2 = np. array ([5, 5, 7, 8])
次に、Python のSciPyパッケージのcanberra()関数を使用して、2 つのベクトル間のキャンベラ距離を計算できます。
from scipy. spatial import distance
#calculate Canberra distance between the arrays
distance. canberra (array1, array2)
0.9552669552
2 つのベクトル間のキャンベラ距離は0.95527です。
この値は、以前に手動で計算した値に対応していることに注意してください。
注: canberra()関数の完全なドキュメントは、 SciPyパッケージからここで見つけることができます。
追加リソース
次のチュートリアルでは、Python で他の一般的な距離メトリックを計算する方法を説明します。
Pythonでユークリッド距離を計算する方法
Python でマンハッタンの距離を計算する方法
Python でハミング距離を計算する方法
Python でマハラノビス距離を計算する方法
Python でレーベンシュタイン距離を計算する方法