คำนวณลักษณะนิสัยใจตรงกันด้วย Cosine similarity

ถ้าพูดถึงการหาความคล้ายระหว่าง 2 Vectors เราสามารถใช้การคำนวณหาความคล้ายคลึงแบบโคซายน์ (Cosine similarity) ทำการคำนวณได้ง่ายๆมากๆ แต่ก่อนอื่น เราต้องมี Data สำหรับทำการเปรียบเทียบ สมมติอย่างกรณีเราจะคำนวณระหว่างชาย-หญิงคู่หนึ่ง ที่กำลังจีบกัน ว่ามีนิสัยความคล้ายกันมากน้อยแค่ไหน(เพื่อความเข้ากันได้) โดยหลักการคือ Cosine =1 แปลว่าเท่ากัน และถ้า Cosine = 0 แปลว่ามันไม่เหมือนกันอย่างรุนแรง แต่ส่วนใหญ่ถ้าคำนวณแล้ว จะอยู่ในรูปแบบนี้ 1 <= x <= 0

ดังนั้น เราอาจจะต้องเก็บข้อมูลของทั้ง 2 คน สมมติว่าเรามีข้อมูล 1 เดือน ซึ่งแอบจดพฤติกรรมของทั้ง 2 คนนี้

ผู้ชาย = ปาร์ตี้ (2), เที่ยวทะเล(4), กินอาหารญี่ปุ่น (13), ดูฟุตบอล (8), ชอปปิ้ง (1), ฟิตเนส (18), ดูหนัง (1)
ผู้หญิง = ปาร์ตี้ (6), เที่ยวทะเล(2), กินอาหารญี่ปุ่น (18), ดูฟุตบอล (0), ชอปปิ้ง (8), ฟิตเนส (25), ดูหนัง (4)

เราจะสามารถ ถอดออกมาเขียนใหม่ได้เป็นรูปแบบของ Vectors ดังนี้

A (ผู้ชาย) = [2, 4, 13, 8, 1, 18, 1]
B (ผู้หญิง) = [6, 2, 18, 0, 8, 25, 4]

cos

รูปที่ 1 สมการ Cosine similarity

Dot product

A•B  = 2*6 + 4*2 + 13*18+ 8*0 + 1*8 + 18*25 + 1*4 = 716

||A|| = (2*2 + 4*4 + 13*13 + 8*8 + 1*1 + 18*18 + 1*1)^½ = 42.6495

||B|| = (6*2*18*18 +0*8*25*25 4*4)^½  32.6955

Sim(A,B) = Cost(θ) = 0.5134 หรือ มีความคล้ายกันอยู่ 51.34%

…นี่เป็นแค่ตัวอย่างวิธีคำนวณความคล้าย ไม่ใช่ความรัก อย่าไปซีเรียส นะแจ๊ะ!

Comments

comments

Share on Google Plus