K-means clustering เป็น partitioning algorithm ที่นิยมใช้มากที่สุด K-means จัดสรร (reassigns) ข้อมูลแต่ละตัวใน dataset ให้อยู่ในเพียงหนึ่งเดียวของ clusters ใหม่ที่สร้างขึ้น Record หรือ data point จะถูก assign ให้กับ cluster ที่ใกล้ที่สุดโดยใช้ measure of distance หรือ similarity
K-means algorithm รับ input parameter k และแบ่งกลุ่ม n objects เป็น k clusters เพื่อให้ intracluster similarity (ความคล้ายคลึงภายในกลุ่ม) สูง แต่ intercluster similarity (ความคล้ายคลึงระหว่างกลุ่ม) ต่ำ Cluster similarity คำนวณจากค่าเฉลี่ย (mean) ของ objects ใน cluster ซึ่งมองได้เป็น centroid หรือ center of gravity ของ cluster
ขั้นตอนของ K-means Clustering
เลือก K initial cluster centroids c1, c2, c3... ck
Assign แต่ละ instance x ให้กับ cluster S ที่ centroid ใกล้ x ที่สุด
สำหรับแต่ละ cluster คำนวณ centroid ใหม่จาก elements ที่อยู่ใน cluster นั้น
ทำซ้ำขั้นตอน (b) จนกว่าจะ converge (ค่าหมดเปลี่ยน)
แยก objects (data points) ออกเป็น K clusters
Cluster center (centroid) = ค่าเฉลี่ยของ data points ทั้งหมดใน cluster
Assign แต่ละ point ให้ cluster ที่ centroid ใกล้ที่สุด (ใช้ distance function)
ค่าเริ่มต้นของ means กำหนดแบบ arbitrary สามารถสุ่มได้ หรือใช้ค่าจาก k input items แรกเอง Convergence criterion อาจอิง squared error แต่ไม่จำเป็น ตัวอย่าง algorithm หยุดเมื่อ assignment ไม่เปลี่ยน clusters อื่นๆ ใช้ fixed number of iterations สามารถกำหนด max iterations เพื่อให้หยุดได้แม้ไม่ converge
Algorithm
Input −
D = {t1 t2 … tn} // Set of elements
k // Number of desired clusters
Output −
K // Set of clusters
K-means algorithm −
assign initial values for means m1 m2 … mk
repeat
assign each item ti to the cluster which has the closest mean
calculate the new mean for each cluster
until convergence criteria are met
สุ่มเลือก 3 objects เป็น 3 initial cluster centers (cluster centers แทนด้วย "+") แต่ละ object ถูก assign ให้ cluster ตาม cluster center ที่ใกล้ที่สุด
ต่อมา cluster centers ถูกอัปเดต ค่าเฉลี่ยของแต่ละ cluster คำนวณใหม่จาก objects ปัจจุบัน ด้วย cluster centers ใหม่ objects ถูก redistributed ใหม่ ตาม cluster center ที่ใกล้ที่สุด การ redistribute นี้สร้าง silhouettes ใหม่ที่ล้อมด้วย dashed curves
กระบวนการ iteratively reassigning objects to clusters เพื่อปรับปรุง partitioning เรียกว่า iterative relocation ไม่มี redistribution ใน cluster ใดๆ กระบวนการจึงหยุด Clusters ที่ได้ถูกคืนค่าจาก clustering phase