R のミンコフスキー距離を計算する方法 (例付き)
2 つのベクトルAとBの間のミンコフスキー距離は次のように計算されます。
(Σ|a i – b i | p ) 1/p
ここで、 iは各ベクトルの i番目の要素、 pは整数です。
この距離は、任意の 2 つのベクトル間の非類似性を測定するために使用され、多くの異なる機械学習アルゴリズムで一般的に使用されます。
R 内のベクトル間のミンコフスキー距離を計算するには、次の構文で組み込みのdist()関数を使用できます。
d ist(x, method=”ミンコフスキー”, p)
金:
- x:デジタル マトリックスまたはデータ フレーム。
- p:ミンコフスキー距離の計算に使用する検出力。
p = 1 を設定することはマンハッタン距離を計算することと同等であり、p = 2 を設定することはユークリッド距離を計算することと同等であることに注意してください。
このチュートリアルでは、この機能を実際に使用する方法の例をいくつか示します。
例 1: 2 つのベクトル間のミンコフスキー距離
次のコードは、 dist()関数を使用して、p = 3 の累乗を使用して R 内の 2 つのベクトル間のミンコフスキー距離を計算する方法を示しています。
#define two vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) #bind the two vectors into a single matrix mat <- rbind(a, b) #calculate Minkowski distance between vectors using a power of 3 dist(mat, method=" minkowski ", p= 3 ) has b 3.979057
これら 2 つのベクトル間のミンコフスキー距離 (p = 3 の累乗を使用) は、 3.979057であることがわかります。
例 2: 行列内のベクトル間のミンコフスキー距離
行列内の複数のベクトル間のミンコフスキー距離を計算するには、R で同様の構文を使用できます。
#create four vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) c <- c(9, 9, 9, 8) d <- c(1, 2, 3, 3) #bind vectors into one matrix mat <- rbind(a, b, c, d) #calculate Minkowski distance between vectors using a power of 3 dist(mat, method = “ minkowski ”, p= 3 ) ABC b 3.979057 c 8.439010 5.142563 d 3.332222 6.542133 10.614765
この出力を解釈する方法は次のとおりです。
- ベクトルaとbの間のミンコフスキー距離は3.98です。
- ベクトルaとcの間のミンコフスキー距離は8.43です。
- ベクトルaとdの間のミンコフスキー距離は3.33です。
- ベクトルbとcの間のミンコフスキー距離は5.14です。
- ベクトルbとdの間のミンコフスキー距離は6.54です。
- ベクトルcとdの間のミンコフスキー距離は10.61です。
行列内の各ベクトルは同じ長さでなければならないことに注意してください。
追加リソース
R でユークリッド距離を計算する方法
R でのハミング距離の計算方法
Rでマンハッタンからの距離を計算する方法
R でマハラノビス距離を計算する方法