วิธีการคำนวณระยะทางแมนฮัตตันใน r (พร้อมตัวอย่าง)


ระยะห่างของแมนฮัตตัน ระหว่างเวกเตอร์สองตัว A และ B คำนวณได้ดังนี้:

Σ| ฉัน – ข ฉัน |

โดยที่ i คือองค์ประกอบที่ 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
วิธีการคำนวณระยะทาง Minkowski ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *