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


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

ระยะทางแบบยุคลิด = √ Σ(A i -B i ) 2

ในการคำนวณระยะห่างแบบยุคลิดระหว่างเวกเตอร์สองตัวใน R เราสามารถกำหนดฟังก์ชันต่อไปนี้:

 euclidean <- function (a, b) sqrt ( sum ((a - b)^2))

จากนั้นเราสามารถใช้ฟังก์ชันนี้เพื่อค้นหาระยะห่างแบบยุคลิดระหว่างเวกเตอร์สองตัวใดก็ได้:

 #define two vectors
a <- c(2, 6, 7, 7, 5, 13, 14, 17, 11, 8)
b <- c(3, 5, 5, 3, 7, 12, 13, 19, 22, 7)

#calculate Euclidean distance between vectors
euclid(a, b)

[1] 12.40967

ระยะห่างแบบยุคลิดระหว่างเวกเตอร์ทั้งสองกลายเป็น 12.40967

โปรดทราบว่าเรายังสามารถใช้ฟังก์ชันนี้เพื่อคำนวณระยะทางแบบยุคลิดระหว่างสองคอลัมน์ของกรอบข้อมูล:

 #define data frame
df <- data.frame(a=c(3, 4, 4, 6, 7, 14, 15),
                 b=c(4, 8, 8, 9, 14, 13, 7),
                 c=c(7, 7, 8, 5, 15, 11, 8),
                 d=c(9, 6, 6, 7, 6, 15, 19))

#calculate Euclidean distance between columns a and d
euclid(df$a, df$d)

[1] 7.937254

โปรดทราบว่าฟังก์ชันนี้จะสร้างข้อความเตือนหากเวกเตอร์ทั้งสองมีความยาวไม่เท่ากัน:

 #define two vectors of unequal length
a <- c(2, 6, 7, 7, 5, 13, 14)
b <- c(3, 5, 5, 3, 7, 12, 13, 19, 22, 7)

#attempt to calculate Euclidean distance between vectors
euclid(a, b)

[1] 23.93742
Warning message:
In a - b: longer object length is not a multiple of shorter object length

คุณสามารถดู หน้า Wikipedia นี้ เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับระยะทางแบบยุคลิด

แหล่งข้อมูลเพิ่มเติม

วิธีการคำนวณระยะทางจากแมนฮัตตันในอาร์
วิธีการคำนวณระยะทาง Minkowski ใน R
วิธีการคำนวณระยะทาง Hamming ใน R
วิธีการคำนวณระยะทาง Mahalanobis ใน R
วิธีการคำนวณระยะทาง Levenshtein ใน R

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

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