การแบ่งกลุ่มข้อมูล (
อังกฤษ: data clustering) เป็นวิธีการวิเคราะห์ข้อมูล ซึ่งใช้ใน
การเรียนรู้ของเครื่อง การทำเหมืองข้อมูล โดยจะแบ่งชุดข้อมูล (มักจะเป็น
เวกเตอร์) ออกเป็นกลุ่ม (cluster) นำข้อมูลที่มีคุณลักษณะเหมือนกัน หรือคล้ายกันจัดไว้ในกลุ่มเดียวกัน ขั้นตอนวิธีที่ใช้ในการแบ่งกลุ่มจะอาศัยความเหมือน (similarity) หรือ ความใกล้ชิด (proximity) โดยคำนวณจากการวัดระยะระหว่างเวกเตอร์ของข้อมูลเข้า โดยใช้การวัดระยะแบบต่าง ๆ เช่น
การวัดระยะแบบยูคลิด (Euclidean distance)
การวัดระยะแบบแมนฮัตตัน (Manhattan distance)
การวัดระยะแบบเชบิเชฟ (Chebychev distance)การแบ่งกลุ่มข้อมูลจะแตกต่างจาก
การแบ่งประเภทข้อมูล (classification) โดยจะแบ่งกลุ่มข้อมูลจากความคล้าย โดยไม่มีการกำหนดประเภทของข้อมูลไว้ก่อน จึงกล่าวได้ว่าการแบ่งกลุ่มข้อมูล เป็น
การเรียนรู้แบบไม่มีผู้สอนขั้นตอนวิธีการแบ่งกลุ่ม ได้แก่
k-means clustering,
hierarchical clustering,
self-organizing map (som)การแบ่งกลุ่มข้อมูลอาจใช้เป็นข้อตอนเบื้องต้นของการวิเคราะห์ข้อมูล เพื่อช่วยในการลดขนาดข้อมูล (แยกเป็นหลาย ๆ กลุ่มและคัดเฉพาะบางกลุ่มเพื่อทำการวิเคราะห์ต่อไป หรือแยกการวิเคราะห์ออกเป็นสำหรับแต่ละกลุ่ม) ก่อนที่จะนำไปวิเคราะห์ด้วยวิธีการอื่นต่อไปขั้นตอนวิธีในการแบ่งกลุ่มข้อมูล โดยทั่วไปแบ่งได้เป็น 2 ประเภทใหญ่ๆ คือ
การแบ่งแบบเป็นลำดับขั้น (hierarchical) และ
การแบ่งแบบตัดเป็นส่วน (partitional) การแบ่งแบบเป็นลำดับขั้นนั้น จะมีทำการแบ่งกลุ่มจากกลุ่มย่อยที่ถูกแบ่งไว้ก่อนหน้านั้นซ้ำหลายครั้ง ส่วนการแบ่งแบบตัดเป็นส่วนนั้น การแบ่งจะทำเพียงครั้งเดียว การแบ่งแบบเป็นลำดับขั้น จะมี 2 ลักษณะคือ
แบบล่างขึ้นบน (bottom-up) หรือ เป็นการแบ่งแบบรวมกลุ่มจากกลุ่มย่อยให้ใหญ่ขึ้นไปเรื่อยๆ โดยเริ่มจากกลุ่มเล็กสุดคือในแต่ละกลุ่มมีข้อมูลเพียงตัวเดียว และ
แบบบนลงล่าง (top-down) หรือ เป็นการแบ่งแบบกลุ่มจากกลุ่มใหญ่ให้ย่อยไปเรื่อยๆ โดยเริ่มจากกลุ่มใหญ่ที่สุด คือกลุ่มเดียวมีข้อมูลทุกตัวอยู่ในกลุ่ม