สวัสดีครับวันนี้ขออธิบายเนื่อหาด้าน Programming เกี่ยวกับ K-mean Algorithm
K-mean Algorithmคือการแบ่งกลุ่มตามจำนวนกลุ่มที่เราต้องการแบ่งซึ่งใน Blog นี้จะเป็นตัวอย่างการใช้ K-mean ในด้านการจัดกลุ่มตามตำแหน่งระบบพิกัด X, Y ครับ
K-mean Algorithm คือ Algorithm สำหรับการจัดกลุ่มชนิดหนึ่งซึ่งใช้ค่าเฉลี่ยช่วยในการจัดกลุ่มแบบ Partition (คือการแบ่งกลุ่มชัดเจนโดยไม่มีกลุ่มใดซับท้อนกัน) โดยเราจะต้องระบุจำนวนกลุ่มที่เราต้องการแบ่งลงไป(คือค่า K) แล้ว K-Mean Algorithm จะแบ่งกลุ่มโดยใช้ค่าเฉลี่ยในการประมวลผลครับ
ภาพแสดงจำนวนข้อมูลทั้งหมด |
ภาพแสดงการแบ่งข้อมูลออกเป็น 2 กลุ่ม (K=2) |
ภาพแสดงการแบ่งข้อมูลออกเป็น 3 กลุ่ม (K=3) |
หลักการทำงานของ K-Mean Algorithm จะมีหลักการทำงานดังนี้ตามลำดับครับ
1. กำหนดจำนวนกลุ่มที่ต้องการจะแบ่ง (กำหนดค่า K)
สมมุติเราต้องการแบ่งข้อมูลจำนวน 2 กลุ่มโดยมีจำนวนข้อมูลดังภาพ
ภาพแสดงจำนวนข้อมูลทั้งหมด |
2. กำหนดตำแหน่งศูนย์กลางของกลุ่ม K ตำแหน่ง (ตำแหน่งศูนย์กลางเราจะเรียกว่า Cluster Center หรือ Centroid)
เนื่องจากเราต้องการแบ่งกลุ่มเป็น 2 กลุ่ม เราจึงวาง Centroid 2 ตำแหน่ง(ในครั้งแรกเราจะวางตำแหน่งใหนก็ได้ครับ)
ภาพแสดงการวาง centriod โดยเครื่องหมาย + แสดงถึง ตำแหน่ง centriod ของแต่ละกลุ่ม |
3. ทำการจัดกลุ่มโดยการเลือกระยะห่างระหว่างข้อมูลกับตำแหน่งศูนย์กลางของกลุ่ม(Centroid) ที่น้อยที่สุด
ภาพแสดงการจัดกลุ่ม โดยจัดกลุ่มข้อมูลที่ห่างจากตำแหน่ง Centriod น้อยที่สุด |
4. เมื่อจัดกลุ่มเสร็จทั้งหมดแล้วก็หาค่าเฉลี่ยแต่ละกลุ่ม และ ให้ค่าเฉลี่ยนั้นเป็นตำแหน่งศูนย์กลาง(Centroid) แต่ละกลุ่มใหม่
ภาพแสดงการจัดตำแหน่ง Centriod ใหม่ให้อยู่กึ่งกลางของกลุ่ม หรือ ค่าเฉลี่ยของกลุ่มนั่นเอง |
5. ทำซ้ำข้อ 3 ข้อ 4 เรื่อยๆ จนกระทั้งค่าเฉลี่ยหรือตำแหน่งศูนย์กลางของกลุ่ม(Centroid) ทุกกลุ่มไม่มีการเปลี่ยนแปลง
ภาพทำกระบวนการทำงาน ตามข้อ 3 |
ภาพทำกระบวนการทำงาน ตามข้อ 4 |
ตัวอย่าง Code การใช้ Kmean จัดกลุ่มข้อมูลเชิงเส้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น