كيفية حساب مسافة مانهاتن بالـ r (مع أمثلة)


يتم حساب مسافة مانهاتن بين المتجهين A و B على النحو التالي:

Σ|أ ط – ب ط |

حيث i هو العنصر الأول لكل متجه.

تُستخدم هذه المسافة لقياس الاختلاف بين أي متجهين وتستخدم بشكل شائع في العديد من خوارزميات التعلم الآلي المختلفة.

يقدم هذا البرنامج التعليمي بعض الأمثلة لحساب مسافة مانهاتن في R.

مثال 1: مسافة مانهاتن بين متجهين

يوضح الكود التالي كيفية إنشاء دالة مخصصة لحساب مسافة مانهاتن بين متجهين في R:

 #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

وتبين أن مسافة مانهاتن بين هذين المتجهين هي 9 .

يمكننا التأكد من صحة هذا من خلال حساب المسافة إلى مانهاتن يدويًا بسرعة:

Σ|أ ط – ب ط | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .

مثال 2: مسافة مانهاتن بين المتجهات في المصفوفة

لحساب مسافة مانهاتن بين متجهات متعددة في مصفوفة، يمكننا استخدام الدالة dist() المضمنة في 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 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 .

لاحظ أن كل متجه في المصفوفة يجب أن يكون له نفس الطول.

مصادر إضافية

كيفية حساب المسافة الإقليدية في R
كيفية حساب مسافة Mahalanobis في R
كيفية حساب مسافة مينكوفسكي في R

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *