วันพฤหัสบดีที่ 2 กุมภาพันธ์ พ.ศ. 2560

K Mean Algorithm

         
        สวัสดีครับวันนี้ขออธิบายเนื่อหาด้าน 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 จัดกลุ่มข้อมูลเชิงเส้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น