Basic Data Science : การวัดความต่างกันของข้อมูล


การวัดความเหมือนกันของข้อมูล

algorithm ที่ใช้การวัดความเหมือนของข้อมูลที่พบบ่อยแก่

  • Euclidean
  • Manhattan
  • Minkowski
  • Cosine Similarity
  • Jaccard 
ที่จริงแล้ว algorithm เหล่านี้ใช้วัดระยะห่างระหว่างข้อมูลสองชุด ค่าที่ได้บอกเราว่าถ้าระยะห่างน้อยก็แสดงว่าความเหมือนมีมาก

Euclidean [1] เป็น algorithm ที่ใช้บ่อยมากที่สุด หากไม่มีการกำหนดชื่อ algorithm ไว้ มักจะอนุมานว่าใช้ตัวนี้ไว้ก่อน

d(x,y)=i=1n(xiyi)22


Manhattan [2] อาจจะพบได้ในชื่ออื่น เช่น L1 distance, Taxicap

d(x,y)=i=1nxiyi


Minkowski [3] มองว่าเป็น general term ของทั้ง Euclidean และ Manhattan

d(x,y)=[i=1nxiyip]1p


Cosine similarity [4]

เมื่อ vector u, v เป็น non-zero vector และทั้งสองทำมุมต่อกัน θ องศาแล้ว



similarity=cosθ

similarity=i=1n(xiyi)i=1nxi2i=1nyi2

ตัวอย่าง
  u=[2,3]v=[4,8]s=[10,11]
sim(u,v)=(2×4)+(3×8)(22+32)×(42+82)
 sim(u,v)=0.03
sim(v,s)=(4×10)+(8×11)(42+82)×(102+112)
 sim(v,s)=0.007

แสดงว่า v ใกล้หรือเหมือนกับ s มากกว่า u

Jaccard similarity (Jaccard Index) [5]
ใช้หลักการของ Set มาช่วยพิจารณา บางครั้งจึงเรียกว่า Intersection over Union (IOU)




J(A,B)=ABAB

 ข้อดีของการใช้ Set คือ ข้อมูลไม่จำเป็นต้องมี dimension เท่ากันก็สามารถนำมาวัดความเหมือนได้ ยกตัวอย่าง






จะได้ว่า
 J(A,B)=18=0.125

ตัวอย่าง
ถ้าในระบบฐานข้อมูลดอก Iris มีดังตารางข้างล่างนี้

sepal lengthsepal widthpetal lengthpetal widthclass
6.33.36.02.5Iris-virginica
4.93.01.40.2Iris-setosa
6.93.14.91.5Iris-versicolor

ในการเก็บข้อมูลภาคสนามครั้งหนึ่งได้ข้อมูลมาดังนี้ X =  [4.6,3.1,1.5,0.2] มาใช้การวัดความเหมือนด้วย Euclidean เพื่อดูว่าดอกไม้ X ที่เก็บมาจะอยู่ใน class ใด

RowDistance
1(4.66.3)2+(3.13.3)2+(1.56.0)2+(0.22.5)22=5.33
2(4.64.9)2+(3.13.0)2+(1.51.4)2+(0.20.2)22=0.33
3(4.66.9)2+(3.13.1)2+(1.54.9)2+(0.21.5)22=4.33

จากตารางจะเห็นว่าเมื่อเทียบกับ Iris-setosa (row 2) แล้ว จะได้ค่าระยะห่าง (distance) ต่ำที่สุด (ความเหมือนมีมาก)  ดังนั้นดอก X ควรจัดอยู่ใน class Iris-setosa


--------------------------
เอกสารอ้างอิง
[1] https://en.wikipedia.org/wiki/Euclidean_distance
[2] https://en.wiktionary.org/wiki/Manhattan_distance
[3] https://en.wikipedia.org/wiki/Minkowski_distance
[4] https://en.wikipedia.org/wiki/Cosine_similarity
[5] https://en.wikipedia.org/wiki/Jaccard_index





ความคิดเห็น