R でマンハッタンの距離を計算する方法 (例付き)


2 つのベクトルABの間のマンハッタン距離は次のように計算されます。

Σ|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

この出力を解釈する方法は次のとおりです。

  • ベクトルabの間のマンハッタン距離は9です。
  • ベクトルacの間のマンハッタン距離は19です。
  • ベクトルaベクトル dの間のマンハッタン距離は7です。
  • ベクトルbcの間のマンハッタン距離は10です。
  • ベクトルbベクトル dの間のマンハッタン距離は16です。
  • ベクトルcdの間のマンハッタン距離は26です。

行列内の各ベクトルは同じ長さでなければならないことに注意してください。

追加リソース

R でユークリッド距離を計算する方法
R でマハラノビス距離を計算する方法
R でミンコフスキー距離を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です