ข้อแตกต่างระหว่าง Mahalanobis distance กับ Euclidean Distance : ทำไม และ เมื่อไหร่ ต้องใช้ Mahalanobis distance ใน data mining
Euclidean Distance
นิยาม
โชว์เหนือ เขียนแบบ linear algebra
ข้อเสียของ Euclidean distance
ซึ่งก็คือ Euclidean distance หารด้วย SD นั่นเอง
ไอ้เจ้าตัวนี้มันมีชื่อเรียกเก๋ๆ ว่า normalized Euclidean distance
บทความข้างต้น แปลและเรียบเรียงมาจาก wiki และ บล็อกของ คุณ Will Dwinnell ซึ่งเขายังแนะนำ หนังสือให้ไปอ่านเพิ่มเติม คือ Multivariate Statistical Methods, by Manly (ISBN: 0-412-28620-3) ในบล็อกของเขาอีกด้วย ขอขอบคุณ มา ณ ที่นี้นะครับ :)
นิยาม
EuclideanDistance = sqrt(sum( (A - B) .^ 2 ))
โชว์เหนือ เขียนแบบ linear algebra
EuclideanDistance = norm(A - B)
ข้อเสียของ Euclidean distance
1. sensitive to scales ของตัวแปร
ในกรณี geometric ตัวแปรทุกตัวมีหน่วยเดียวกันหมด คือ ระยะทาง
แต่เมื่อพิจารณาตัวแปรที่มีข้อมูลหลายชนิดพร้อมๆกัน เช่น ใน data mining เราอาจจะพิจารณา อายุ, ความสูง, น้ำหนัก ฯลฯ พร้อมๆกันหมด สเกลมันเอามาเปรียบเทียบกันไม่ได้
2. Euclidean distance ใช้กับตัวแปรที่ correlated กันไม่ได้
เช่น สมมติว่าเรามี data set 5 ตัวแปร ที่ซึ่งค่าของตัวแปรหนึ่งเหมือนกับอีกตัวแปรหนึ่งเด๊ะๆ ( กรณีนี้เหมือนเด๊ะ เลยเป็น completely correlated ) Euclidean distance จะคำนวณโดย weight ข้อมูลที่ซ้ำกันมากขึ้น ทำให้มีปัญหา
Mahalanobis distance
นิยาม
เมื่อ S คือ covariance matrix และ x, y มี distribution เดียวกัน
Mahalanobis distance มันพิจารณ่า covariance matrix ไปด้วย เลยขจัดปัญหาเรื่อง scale และ correlation ที่ Euclidean Distance มีได้
ใน MATLAB ใช้ฟังก์ชั่น mahal() หรือ pdist() ดูตัวอย่าง mahaldist.m ของคุณ Peter J. Acklam
ถ้า S เป็น identity matrix ตัว Mahalanobis distance จะกลายเป็น
ถ้า S เป็น identity matrix ตัว Mahalanobis distance จะกลายเป็น
ซึ่งก็คือ Euclidean distance หารด้วย SD นั่นเอง
ไอ้เจ้าตัวนี้มันมีชื่อเรียกเก๋ๆ ว่า normalized Euclidean distance
บทความข้างต้น แปลและเรียบเรียงมาจาก wiki และ บล็อกของ คุณ Will Dwinnell ซึ่งเขายังแนะนำ หนังสือให้ไปอ่านเพิ่มเติม คือ Multivariate Statistical Methods, by Manly (ISBN: 0-412-28620-3) ในบล็อกของเขาอีกด้วย ขอขอบคุณ มา ณ ที่นี้นะครับ :)
ความคิดเห็น