การจัดกลุ่ม

Basic

การจัดกลุ่ม (Clustering) | บทนำเชิงปฏิบัติ

まとめ
  • การจัดกลุ่มเป็นการเรียนรู้แบบไม่มีผู้สอนสำหรับค้นหารูปแบบหรือกลุ่มในข้อมูลที่ไม่ระบุฉลาก
  • มีแนวคิดหลากหลาย เช่น อิงระยะทาง อิงความหนาแน่น โมเดลความน่าจะเป็น หรือกราฟ เลือกใช้ตามลักษณะข้อมูล
  • มีวิธีต่อยอดจำนวนมากสำหรับการเลือกจำนวนคลัสเตอร์ การจัดการ noise หรือการผสมหลายเกณฑ์พร้อมกัน

การจัดกลุ่ม #

ภาพรวมเชิงสัญชาติญาณ #

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

แนวคิดเชิงคณิตศาสตร์ #

แม้สูตรของแต่ละวิธีต่างกัน แต่มีเป้าหมายร่วมคือ “ทำให้คลัสเตอร์ภายในมีความคล้ายสูง และระหว่างคลัสเตอร์มีความคล้ายต่ำ” เราสามารถกำหนดความคล้ายด้วยระยะ (Euclidean, cosine ฯลฯ) จำนวนเพื่อนบ้าน ความน่าจะเป็น หรือโครงสร้างกราฟ แล้วแก้ปัญหาสุดโต่งตามนิยามนั้น

ทดลองด้วย Python #

บทนี้สาธิตหัวข้อสำคัญต่อไปนี้พร้อมโค้ด scikit-learn

  • k-means / k-means++ / X-means: การอัปเดตเซนทรอยด์และการเลือกจำนวนคลัสเตอร์อัตโนมัติ
  • DBSCAN / HDBSCAN: วิธีอิงความหนาแน่นที่รับมือ noise ได้ดี
  • Gaussian Mixture Model (GMM): คาดความน่าจะเป็นการเป็นสมาชิกคลัสเตอร์
  • Hierarchical Clustering: ใช้เดนโดรแกรมดูโครงสร้างหลายระดับ
  • Spectral Clustering: สร้างคลัสเตอร์จากลาปลาซเชียนของกราฟ

โค้ดทุกชิ้นสร้างภาพเพื่อช่วยตีความผลลัพธ์

เอกสารอ้างอิง #

  • Jain, A. K. (2010). Data Clustering: 50 Years Beyond K-means. Pattern Recognition Letters.
  • Xu, R., & Wunsch, D. (2005). Survey of Clustering Algorithms. IEEE Transactions on Neural Networks.