วิธีใช้ฟังก์ชัน dist ใน r (พร้อมตัวอย่าง)


ฟังก์ชัน dist() ใน R สามารถใช้คำนวณเมทริกซ์ระยะทาง ซึ่งแสดงระยะห่างระหว่างแถวในเมทริกซ์หรือกรอบข้อมูล

ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:

dist(x, วิธีการ =”ยุคลิด”)

ทอง:

  • x: ชื่อของเมทริกซ์หรือบล็อกข้อมูล
  • วิธี: การวัดระยะทางที่จะใช้ ค่าเริ่มต้นคือ “Euclidean” แต่ตัวเลือกต่างๆ ได้แก่ “maximum”, “manhattan”, “canberra”, “binary” หรือ “minkowski”

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:

 #define 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)

#row bind four vectors into matrix
mat <- rbind(a, b, c, d)

#view matrix
mast

  [,1] [,2] [,3] [,4]
a 2 4 4 6
b 5 5 7 8
c 9 9 9 8
d 1 2 3 3

ตัวอย่างที่ 1: ใช้ dist() เพื่อคำนวณระยะทางแบบยุคลิด

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

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

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

 #calculate Euclidean distance between each row in matrix
dist(mat)

          ABC
b4.795832                    
c 10.148892 6.000000          
d 3.872983 8.124038 13.190906

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • ระยะห่างแบบยุคลิดระหว่างเส้น a และเส้น b คือ 4.795832
  • ระยะห่างแบบยุคลิดระหว่างเส้น a และเส้น c คือ 10.148892
  • ระยะห่างแบบยุคลิดระหว่างเส้น a และเส้น d คือ 3.872983
  • ระยะห่างแบบยุคลิดระหว่างเส้น b และเส้น c คือ 6.000000
  • ระยะห่างแบบยุคลิดระหว่างเส้น b และเส้น d คือ 8.124038
  • ระยะห่างแบบยุคลิดระหว่างเส้น c และเส้น d คือ 13.190906

ตัวอย่างที่ 2: ใช้ dist() เพื่อคำนวณระยะทางสูงสุด

ระยะห่างสูงสุด ระหว่างเวกเตอร์สองตัว A และ B คำนวณเป็นผลต่างสูงสุดระหว่างองค์ประกอบแบบคู่ทั้งหมด

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

 #calculate Maximum distance between each row in matrix
dist(mat, method=" maximum ")

  ABC
b 3    
c 7 4  
d 3 5 8

ตัวอย่างที่ 3: ใช้ dist() เพื่อคำนวณระยะทางจากแคนเบอร์รา

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

ระยะทางจากแคนเบอร์รา = Σ |A i -B i | / | เอไอ | + | บีเจ |

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

 #calculate Canberra distance between each row in matrix
dist(mat, method=" canberra ")

          ABC
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

ตัวอย่างที่ 4: ใช้ dist() เพื่อคำนวณระยะทางไบนารี

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

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

 #calculate Binary distance between each row in matrix
dist(mat, method=" binary ")

  ABC
b 0    
c 0 0  
d 0 0 0

ตัวอย่างที่ 5: ใช้ dist() เพื่อคำนวณระยะทาง Minkowski

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

ระยะทาง Minkowski = (Σ|a i – b i | p ) 1/p

โดยที่ i เป็น องค์ประกอบ ที่ i ของเวกเตอร์แต่ละตัว และ p เป็นจำนวนเต็ม

รหัสต่อไปนี้แสดงวิธีคำนวณเมทริกซ์ระยะทางที่แสดงระยะทาง Minkowski (โดยใช้ p=3) ระหว่างแต่ละแถวของเมทริกซ์ใน R:

 #calculate Minkowski distance between each row in matrix
dist(mat, method=" minkowski ", p= 3 )

          ABC
b 3.979057                    
c 8.439010 5.142563          
d 3.332222 6.542133 10.614765

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

วิธีการคำนวณความคล้ายคลึงกันของ Jaccard ใน R
วิธีการคำนวณความคล้ายคลึงโคไซน์ใน R
วิธีการคำนวณผลคูณดอทใน R

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

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