วิธีการคำนวณระยะทางแมนฮัตตันใน python (พร้อมตัวอย่าง)
ระยะห่างของแมนฮัตตัน ระหว่างเวกเตอร์สองตัว A และ B คำนวณได้ดังนี้:
Σ|A ฉัน – B ฉัน |
โดยที่ i คือองค์ประกอบที่ i ของเวกเตอร์แต่ละตัว
ระยะนี้ใช้เพื่อวัดความแตกต่างระหว่างเวกเตอร์สองตัว และมักใช้ใน อัลกอริทึมการเรียนรู้ของเครื่อง หลายๆ ตัว
บทช่วยสอนนี้แสดงสองวิธีในการคำนวณระยะห่างของแมนฮัตตันระหว่างเวกเตอร์สองตัวใน Python
วิธีที่ 1: เขียนฟังก์ชันแบบกำหนดเอง
รหัสต่อไปนี้แสดงวิธีสร้างฟังก์ชันแบบกำหนดเองเพื่อคำนวณระยะห่างของแมนฮัตตันระหว่างเวกเตอร์สองตัวใน Python:
from math import sqrt #create function to calculate Manhattan distance def manhattan(a, b): return sum ( abs (val1-val2) for val1, val2 in zip (a,b)) #definevectors A = [2, 4, 4, 6] B = [5, 5, 7, 8] #calculate Manhattan distance between vectors manhattan(A,B) 9
ระยะห่างของแมนฮัตตันระหว่างเวกเตอร์ทั้งสองนี้กลายเป็น 9
เราสามารถยืนยันได้ว่าสิ่งนี้ถูกต้องโดยการคำนวณระยะทางไปแมนฮัตตันด้วยมืออย่างรวดเร็ว:
Σ|A ฉัน – B ฉัน | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .
วิธีที่ 2: ใช้ฟังก์ชัน cityblock()
อีกวิธีหนึ่งในการคำนวณระยะห่างของแมนฮัตตันระหว่างเวกเตอร์สองตัวคือการใช้ฟังก์ชัน cityblock() จากแพ็คเกจ SciPy:
from scipy. spatial . distance import cityblock #definevectors A = [2, 4, 4, 6] B = [5, 5, 7, 8] #calculate Manhattan distance between vectors cityblock(A, B) 9
เป็นอีกครั้งที่ระยะห่างระหว่างแมนฮัตตันระหว่างเวกเตอร์ทั้งสองนี้กลายเป็น 9
โปรดทราบว่าเรายังสามารถใช้ฟังก์ชันนี้เพื่อค้นหาระยะห่างของแมนฮัตตันระหว่างสองคอลัมน์ใน DataFrame ของแพนด้า:
from scipy. spatial . distance import cityblock import pandas as pd #define DataFrame df = pd. DataFrame ({' A ': [2, 4, 4, 6], ' B ': [5, 5, 7, 8], ' C ': [9, 12, 12, 13]}) #calculate Manhattan distance between columns A and B cityblock(df. A , df. B ) 9
แหล่งข้อมูลเพิ่มเติม
วิธีการคำนวณระยะทางแบบยุคลิดใน Python
วิธีการคำนวณระยะทางแฮมมิงใน Python
วิธีการคำนวณระยะทาง Levenshtein ใน Python
วิธีการคำนวณระยะทาง Mahalanobis ใน Python