สร้างมาตรวัดความคล้ายคลึงกันด้วยตนเอง

หากต้องการคํานวณความคล้ายคลึงระหว่างตัวอย่าง 2 รายการ คุณต้องรวมข้อมูลฟีเจอร์ทั้งหมดของตัวอย่าง 2 รายการเหล่านั้นเป็นค่าตัวเลขค่าเดียว

ตัวอย่างเช่น ลองพิจารณาชุดข้อมูลของรองเท้าที่มีฟีเจอร์เพียง 1 รายการ ได้แก่ ขนาดรองเท้า คุณวัดความต่างของรองเท้า 2 ตัวที่คล้ายกันได้โดยการคํานวณความแตกต่างระหว่างขนาดรองเท้า ยิ่งตัวเลขระหว่างขนาดเล็กลง ก็ยิ่งมีความคล้ายคลึงกันระหว่างรองเท้าแต่ละแบบมาก วิธีการวัดความคล้ายคลึงกันแฮนด์เมดนี้เรียกว่าการวัดความคล้ายคลึงกันด้วยตนเอง

หากคุณต้องการหาความคล้ายคลึงกันของรองเท้าโดยใช้ทั้งขนาดและสี สีคือข้อมูลเชิงหมวดหมู่ และรวมเข้ากับข้อมูลขนาดตัวเลขได้ยากขึ้น เราจะเห็นว่าเมื่อข้อมูลซับซ้อนยิ่งขึ้น การสร้างมาตรวัดความคล้ายคลึงกันด้วยตนเองจึงกลายเป็นเรื่องยาก เมื่อข้อมูลเริ่มซับซ้อนมากพอแล้ว คุณจะสร้างการวัดผลด้วยตนเองไม่ได้ นั่นคือเวลาที่เปลี่ยนไปใช้มาตรวัดความคล้ายกันที่มีการควบคุมดูแล ซึ่งโมเดลแมชชีนเลิร์นนิงที่มีการควบคุมดูแลจะคํานวณความคล้ายคลึงกัน

เราจะเก็บข้อมูลเกี่ยวกับความคล้ายคลึงกันที่มีการควบคุมดูแลไว้ให้คุณในภายหลัง และมุ่งเน้นไปที่การวัดด้วยตนเองที่นี่ ในตอนนี้ โปรดอย่าลืมว่าคุณเปลี่ยนไปใช้มาตรวัดความคล้ายคลึง ที่มีการควบคุมดูแลเมื่อมีปัญหาในการสร้างมาตรวัดความคล้ายคลึงของตัวเอง

มาดูวิธีใช้การวัดความคล้ายคลึงกันของตัวคุณเองด้วยตัวเอง มาดูตัวอย่างรองเท้าของเรากัน สมมติว่ารุ่นมีฟีเจอร์ 2 อย่างคือ ขนาดรองเท้าและข้อมูลราคารองเท้า เนื่องจากทั้ง 2 ฟีเจอร์เป็นตัวเลข คุณจึงรวมเข้าด้วยกันเป็นหมายเลขเดียวซึ่งแสดงถึงความคล้ายคลึงกันได้ ดังนี้

  • ขนาด: ขนาดรองเท้าอาจเป็นการกระจายของเกาส์ ยืนยัน จากนั้นทําข้อมูลให้เป็นมาตรฐาน
  • ราคา (p): ข้อมูลอาจเป็นการกระจายของ Poisson ยืนยัน หากมีข้อมูลเพียงพอ ให้แปลงข้อมูลเป็นปริมาณและปรับขนาดเป็น \([0,1]\)
  • รวมข้อมูลโดยใช้รากที่สองของข้อผิดพลาดกําลังสอง (RMSE) ซึ่งก็เหมือนกัน \(\sqrt{\frac{s^2+p^2}{2}}\)

ตัวอย่างง่ายๆ สมมติว่ามีการคํานวณความคล้ายคลึงกันสําหรับรองเท้า 2 เบอร์ที่มีขนาดเท่ากับสหรัฐอเมริกา 8 และ 11 และราคา 120 และ 150 เนื่องจากเรามีข้อมูลไม่เพียงพอที่จะทําความเข้าใจการกระจายนี้ เราก็เพียงแค่ปรับขนาดข้อมูลโดยไม่ต้องปรับให้เป็นมาตรฐานหรือใช้ปริมาณ

แอ็กชันวิธีการ
ปรับขนาด สมมติว่าขนาดรองเท้าสูงสุดที่เป็นไปได้คือ 20 หาร 8 และ 11 ด้วยขนาดสูงสุด 20 เพื่อให้ได้ 0.4 และ 0.55
ปรับขนาดราคา หาร 120 และ 150 ด้วยราคาสูงสุด 150 เพื่อหา 0.8 และ 1
หาความแตกต่างของขนาด \(0.55 - 0.4 = 0.15\)
ดูความแตกต่างของราคา \(1 - 0.8 = 0.2\)
ค้นหา RMSE \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

ความคล้ายคลึงกันที่คุณวัดควรเพิ่มขึ้นเมื่อข้อมูลฟีเจอร์คล้ายกัน แต่ความคล้ายคลึงกันที่คุณวัดกลับกลับลดลงไปด้วย ทําให้ความคล้ายคลึงกันที่วัดได้เป็นไปตามสัญชาตญาณโดยลบออกจาก 1

\[\text{Similarity} = 1 - 0.17 = 0.83\]

โดยทั่วไปแล้ว คุณจะเตรียมข้อมูลตัวเลขตามที่อธิบายไว้ในเตรียมข้อมูล แล้วรวมข้อมูลโดยใช้ระยะทางแบบยูคลิเชียนได้

หากคุณมีข้อมูลเชิงหมวดหมู่ล่ะ ข้อมูลตามหมวดหมู่อาจเป็นได้ทั้ง

  • ค่าเดี่ยว (ไม่เท่ากัน) เช่น สีรถยนต์ ("ขาว" หรือ "น้ําเงิน" แต่ไม่ได้ใส่ทั้ง 2 สี)
  • หลายค่า (หลายค่า) เช่น ประเภทภาพยนตร์ (อาจเป็น "แอ็กชัน" และ "ตลก" พร้อมกัน หรือเป็นเพียง "การกระทํา")

หากข้อมูลไม่ตรงกัน ความคล้ายคลึงคือ 1 หากไม่ใช่ ค่าจะเป็น 0 ข้อมูลที่มีให้เลือกมากมาย จะรับมือกับได้ยากขึ้น ตัวอย่างเช่น ประเภทของภาพยนตร์อาจเป็นเรื่องท้าทาย เพื่อแก้ไขปัญหานี้ สมมติว่าภาพยนตร์ได้รับการกําหนดประเภทจากชุดประเภทคงที่ คํานวณความคล้ายคลึงกันโดยใช้อัตราส่วนของค่าทั่วไปที่เรียกว่าความคล้ายคลึงกันของ JavaScript

ตัวอย่าง:

  • [“comed””action”] และ [“comed””action”] = 1
  • [“comed””action”] และ [“action”] = 1⁄2
  • [“comed””action”] และ [“action”, "drama"] = 1⁄3
  • [“comed””action”] และ [“non-fiction””biiographical”] = 0

ตารางต่อไปนี้มีตัวอย่างเพิ่มเติมเกี่ยวกับวิธีจัดการข้อมูลตามหมวดหมู่

ตัวอย่าง
รหัสไปรษณีย์ รหัสไปรษณีย์ที่แสดงถึงพื้นที่ที่อยู่ใกล้กันควรมีความคล้ายคลึงกันสูงกว่า หากต้องการเข้ารหัสข้อมูลที่จําเป็นเพื่อคํานวณความคล้ายคลึงกันนี้อย่างถูกต้อง คุณแปลงรหัสไปรษณีย์เป็นละติจูดและลองจิจูดได้ สําหรับรหัสไปรษณีย์ 2 ชุด ให้คํานวณความแตกต่างระหว่างละติจูดและลองจิจูดของรหัสเหล่านั้น จากนั้นเพิ่มความแตกต่างเพื่อรับค่าตัวเลขค่าเดียว
สี สมมติว่าคุณมีข้อมูลสีเป็นข้อความ แปลงค่าข้อความให้เป็นค่า RGB ที่เป็นตัวเลข ตอนนี้คุณสามารถหาความแตกต่างในค่าสีแดง เขียว และน้ําเงินสําหรับสี 2 สี และรวมความแตกต่างเป็นค่าตัวเลขได้โดยใช้ระยะทางแบบ Euclidean

โดยทั่วไปแล้ว การวัดความคล้ายคลึงต้องสอดคล้องกับ ความคล้ายคลึงกันตามจริงโดยตรง หากเมตริกไม่ทํา แสดงว่าโค้ดไม่ได้เข้ารหัสข้อมูลที่ต้องการ ตัวอย่างก่อนหน้านี้แปลงรหัสไปรษณีย์เป็นละติจูดและลองจิจูดเนื่องจากรหัสไปรษณีย์เพียงอย่างเดียวไม่ได้เข้ารหัสข้อมูลที่จําเป็น

โปรดประมวลผลข้อมูลอย่างรอบคอบก่อนที่จะสร้างมาตรวัดความคล้ายคลึงกัน แม้ว่าตัวอย่างในหน้านี้จะใช้ชุดข้อมูลที่เรียบง่ายแต่เรียบง่าย แต่ชุดข้อมูลจริงส่วนใหญ่ใหญ่กว่าและมีความซับซ้อนกว่ามาก โปรดทราบว่าปริมาณจะเป็นการเลือกค่าเริ่มต้นที่ดีสําหรับการประมวลผลข้อมูลตัวเลข