R でマンハッタンの距離を計算する方法 (例付き)
2 つのベクトルAとBの間のマンハッタン距離は次のように計算されます。
Σ|a i – b i |
ここで、 iは各ベクトルの i番目の要素です。
この距離は、任意の 2 つのベクトル間の非類似性を測定するために使用され、多くの異なる機械学習アルゴリズムで一般的に使用されます。
このチュートリアルでは、R でマンハッタン距離を計算する例をいくつか示します。
例 1: 2 つのベクトル間のマンハッタン距離
次のコードは、R の 2 つのベクトル間のマンハッタン距離を計算するカスタム関数を作成する方法を示しています。
#create function to calculate Manhattan distance manhattan_dist <- function (a, b){ dist <- abs (ab) dist < -sum (dist) return (dist) } #define two vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) #calculate Manhattan distance between vectors manhattan_dist(a, b) [1] 9
これら 2 つのベクトル間のマンハッタン距離は9であることがわかります。
マンハッタンまでの距離を手動ですばやく計算することで、これが正しいことを確認できます。
Σ|a i – b i | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 。
例 2: 行列内のベクトル間のマンハッタン距離
行列内の複数のベクトル間のマンハッタン距離を計算するには、R に組み込まれているdist()関数を使用できます。
#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 Manhattan distance between each vector in the matrix dist(mat, method = " manhattan ") ABC b 9 c 19 10 d 7 16 26
この出力を解釈する方法は次のとおりです。
- ベクトルaとbの間のマンハッタン距離は9です。
- ベクトルaとcの間のマンハッタン距離は19です。
- ベクトルaとベクトル dの間のマンハッタン距離は7です。
- ベクトルbとcの間のマンハッタン距離は10です。
- ベクトルbとベクトル dの間のマンハッタン距離は16です。
- ベクトルcとdの間のマンハッタン距離は26です。
行列内の各ベクトルは同じ長さでなければならないことに注意してください。