ดังที่แสดงไปก่อนหน้านี้ K-Means จะกําหนดจุดให้กับจุดศูนย์กลางที่ใกล้ที่สุด แต่ "ใกล้ที่สุด" หมายความว่าอย่างไร
หากต้องการใช้ K-Means กับข้อมูลฟีเจอร์ คุณจะต้องกําหนดการวัดความคล้ายคลึงซึ่งรวมข้อมูลฟีเจอร์ทั้งหมดเข้าด้วยกันเป็นค่าตัวเลขค่าเดียว เรียกว่าการวัดความคล้ายคลึงด้วยตนเอง
ลองพิจารณาชุดข้อมูลรองเท้า หากชุดข้อมูลดังกล่าวมีขนาดรองเท้าเป็นฟีเจอร์เดียว คุณจะสามารถกำหนดความคล้ายคลึงของรองเท้า 2 คู่ในแง่ของความแตกต่างของขนาดรองเท้า ยิ่งความแตกต่างของตัวเลขระหว่างขนาดมีน้อยเท่าใด ความคล้ายคลึงระหว่างรองเท้าก็จะยิ่งมากขึ้นเท่านั้น
หากชุดข้อมูลรองเท้าดังกล่าวมีฟีเจอร์ตัวเลข 2 รายการ ได้แก่ ขนาดและราคา คุณสามารถรวมฟีเจอร์ดังกล่าวเข้าด้วยกันเป็นตัวเลขเดียวที่แสดงถึงระดับความคล้ายคลึง ก่อนอื่นให้ปรับขนาดข้อมูลเพื่อให้ทั้ง 2 ฟีเจอร์เปรียบเทียบกันได้ โดยทำดังนี้
- ขนาด (s): ขนาดรองเท้าอาจมีการแจกแจงแบบกaussian ยืนยันข้อมูลนี้ จากนั้นแปลงข้อมูลเป็นรูปแบบมาตรฐาน
- ราคา (p): ข้อมูลน่าจะเป็นการแจกแจงแบบ Poisson ยืนยันข้อมูลนี้ หากคุณมีข้อมูลเพียงพอ ให้แปลงข้อมูลเป็นควอร์ไทล์และปรับขนาดเป็น
ถัดไป ให้รวม 2 ฟีเจอร์เข้าด้วยกันโดยคํานวณค่าเฉลี่ยความคลาดเคลื่อนกำลังสอง (RMSE) ค่าการวัดความคล้ายคลึงแบบคร่าวๆ นี้ได้จาก
ตัวอย่างง่ายๆ คือคำนวณความคล้ายคลึงของรองเท้า 2 คู่ที่มีขนาด 8 และ 11 ในสหรัฐอเมริกา และราคา 120 และ 150 เนื่องจากเรามีข้อมูลไม่เพียงพอที่จะทําความเข้าใจการแจกแจง เราจะปรับขนาดข้อมูลโดยไม่ต้องทำให้เป็นมาตรฐานหรือใช้ควอร์ไทล์
การดำเนินการ | วิธีการ |
---|---|
ปรับขนาด | สมมติว่ารองเท้ามีไซส์สูงสุด 20 หาร 8 และ 11 ด้วยขนาดสูงสุด 20 ก็จะได้ 0.4 และ 0.55 |
ปรับราคา | หาร 120 และ 150 ด้วยราคาสูงสุด 150 จะได้ 0.8 และ 1 |
ค้นหาความแตกต่างของขนาด | |
ค้นหาส่วนต่างของราคา | |
คํานวณ RMSE |
โดยทั่วไปแล้ว ค่าการวัดความคล้ายคลึงควรเพิ่มขึ้นเมื่อข้อมูลฟีเจอร์มีความคล้ายคลึงกันมากขึ้น แต่ค่าการวัดความคล้ายคลึง (RMSE) กลับลดลง ทําให้ค่าการวัดความคล้ายคลึงเป็นไปตามความรู้สึกของคุณโดยลบค่านั้นออกจาก 1
โดยทั่วไป คุณสามารถเตรียมข้อมูลตัวเลขตามที่อธิบายไว้ในเตรียมข้อมูล จากนั้นรวมข้อมูลโดยใช้ระยะทางแบบยูคลิด
จะเกิดอะไรขึ้นหากชุดข้อมูลนั้นมีทั้งขนาดรองเท้าและสีรองเท้า สีเป็นข้อมูลเชิงหมวดหมู่ ซึ่งได้อธิบายไว้ในหลักสูตรเร่งรัดเกี่ยวกับแมชชีนเลิร์นนิงในส่วนการทํางานกับข้อมูลเชิงหมวดหมู่ ข้อมูลเชิงกลุ่มจะรวมเข้ากับข้อมูลขนาดที่เป็นตัวเลขได้ยากกว่า ซึ่งอาจเป็น
- ค่าเดี่ยว (ค่าเดียว) เช่น สีของรถ ("ขาว" หรือ "น้ำเงิน" แต่ต้องไม่มีทั้ง 2 อย่าง)
- มีหลายค่า (หลายค่า) เช่น ประเภทภาพยนตร์ (ภาพยนตร์อาจเป็นทั้ง "แอ็กชัน" และ "ตลก" หรือเป็นแค่ "แอ็กชัน" อย่างเดียว)
หากข้อมูลแบบไม่ผันตรงตรงกัน เช่น ในกรณีของรองเท้าสีน้ำเงิน 2 คู่ ความคล้ายคลึงระหว่างตัวอย่างคือ 1 มิฉะนั้น ค่าความคล้ายคลึงจะเป็น 0
ข้อมูลหลายค่า เช่น ประเภทภาพยนตร์ จะใช้งานยากกว่า หากมีประเภทภาพยนตร์ชุดหนึ่งๆ ที่กำหนดไว้ ระบบจะคำนวณความคล้ายคลึงกันโดยใช้อัตราส่วนของค่าที่เหมือนกัน ซึ่งเรียกว่าความคล้ายคลึงของ Jaccard ตัวอย่างการคำนวณความคล้ายคลึงของ Jaccard
- [“comedy”,”action”] and [“comedy”,”action”] = 1
- [“comedy”,”action”] and [“action”] = ½
- [“comedy”,”action”] and [“action”, "drama"] = ⅓
- [“comedy”,”action”] and [“non-fiction”,”biographical”] = 0
ความคล้ายคลึงของ Jaccard ไม่ใช่วิธีวัดความคล้ายคลึงด้วยตนเองเพียงวิธีเดียวสําหรับข้อมูลเชิงหมวดหมู่ ตัวอย่างอื่นๆ อีก 2 ตัวอย่าง
- รหัสไปรษณีย์สามารถแปลงเป็นละติจูดและลองจิจูดก่อนคำนวณระยะทางแบบยูคลิดระหว่างรหัสไปรษณีย์
- สีสามารถแปลงเป็นค่า RGB ที่เป็นตัวเลขได้ โดยรวมความแตกต่างของค่าเป็นระยะทางแบบยูคลิด
ดูข้อมูลเพิ่มเติมได้ที่การทํางานกับข้อมูลเชิงหมวดหมู่
โดยทั่วไปแล้ว การวัดความคล้ายคลึงด้วยตนเองต้องสอดคล้องกับความคล้ายคลึงจริงโดยตรง หากเมตริกที่คุณเลือกไม่มี แสดงว่าเมตริกไม่ได้เข้ารหัสข้อมูลที่คุณต้องการให้เข้ารหัส
ประมวลผลข้อมูลล่วงหน้าอย่างรอบคอบก่อนคํานวณการวัดความคล้ายคลึง ตัวอย่างในหน้านี้เป็นตัวอย่างแบบง่าย ชุดข้อมูลในชีวิตจริงส่วนใหญ่มีขนาดใหญ่และซับซ้อน ดังที่กล่าวไว้ก่อนหน้านี้ ควอร์ไทล์เป็นตัวเลือกเริ่มต้นที่ดีสำหรับการประมวลผลข้อมูลเชิงตัวเลข
เมื่อข้อมูลมีความซับซ้อนมากขึ้น การสร้างการวัดความคล้ายคลึงด้วยตนเองก็จะยิ่งยากขึ้น ในกรณีดังกล่าว ให้เปลี่ยนไปใช้การวัดความคล้ายคลึงแบบควบคุม ซึ่งโมเดลแมชชีนเลิร์นนิงแบบควบคุมจะคํานวณความคล้ายคลึง เราจะอธิบายเรื่องนี้อย่างละเอียดในภายหลัง