Chapter 7 Clustering อาจารย์อนุพงศ์ สุขประเสริฐ คณะการบัญชีและการจัดการ มหาวิทยาลัยมหาสารคาม
Content การจัดกลุ่มข้อมูล (Clustering) ความหมายของการจัดกลุ่มด้วยเทคนิค Cluster Analysis วัตถุประสงค์ของ Cluster Analysis คุณสมบัติของเทคนิควิธี Cluster Analysis เทคนิคการจัดกลุ่ม (Clustering Techniques) K-Means Agglomerative Clustering DBSCN- Density Based Spatial Clustering of Applications with Noise
What is clustering? Unsupervised learning คือ เราไม่รู้คำตอบอยู่แล้ว ก่อนเรียนรู้ การทำ Clustering คือการแบ่งกลุ่มข้อมูล ข้อมูลที่มี ลักษณะคล้ายๆ กันอยู่กลุ่มเดียวกัน ข้อมูลที่อยู่คนละ กลุ่มจะมีลักษณะที่แต่ต่างกันมากๆ แต่ละกลุ่มจะ เรียกว่า คลัสเตอร์ (cluster) คลัสเตอร์ 2 คลัสเตอร์ 3 คลัสเตอร์ 1
การจัดกลุ่มข้อมูล (Clustering) การจัดกลุ่มข้อมูล (Clustering) ตามหลักการของการ ทำเหมืองข้อมูล (Data Mining) จะต่างกับการแบ่งกลุ่ม ในเชิงสถิติ เนื่องจากการแบ่งกลุ่มทางสถิติ จะ หมายถึง การทำการสุ่มข้อมูล (Sampling) เช่น มี ข้อมูลอยู่ 30 กลุ่มซึ่งมีลักษณะไม่แตกต่างกันมาก ก็ จะแบ่งกลุ่มโดยวิธีการสุ่มใช้ข้อมูลเพียงบางกลุ่ม เท่านั้น ส่วนการทำการแบ่งกลุ่มทางด้านการทำ เหมืองข้อมูลนั้น จะหมายถึง การแบ่งกลุ่มที่ต้องใช้ ข้อมูลของทุกกลุ่มในการหาจุดเด่นของแต่ละกลุ่ม ออกมาให้เห็นอย่างชัดเจน เพื่อได้มาซึ่ง ลักษณะเฉพาะของกลุ่มนั้นๆ
Distance Function การจัดข้อมูลให้อยู่ในกลุ่มต่างๆ จะต้องมีวัดค่า คล้ายคลึง (similarity) หรือ ค่าระยะห่าง (distance) ระหว่างข้อมูลแต่ละตัว ค่าระยะห่างที่นิยมใช้ ระยะห่างยูคลิเนียน ( Euclidean distance) ผลรวมของระยะห่างกำลังสอง (𝑋 𝐵 − 𝑋 𝐴 ) ( 𝑋 𝐵, 𝑌 𝐵 ) ( 𝑌 𝐵− 𝑌 𝐴 ) Euclidean distance = ( X B − X A ) 2 +( Y B − Y A ) 2 ( 𝑋 𝐴− 𝑌 𝐴 )
Applications แบ่งข้อมูลลูกค้าออกเป็นกลุ่มย่อยๆ เพื่อจะได้เข้าใจ พฤติกรรมบริโภคของลูกค้าได้ดีขึ้น ส่งโปรโมชั่นได้ตรงกับความต้องการของลูกค้าแต่ละ กลุ่ม ช่วยในการจัดกลุ่มเอกสารตามความคล้ายคลึง
Clustering Techniques K-Means เป็นประเภท Partitional clustering คือ การแบ่งกลุ่มอย่างชัดเจนโดยไม่มีกลุ่มไหนซ้อนทับกัน อยู่ Agglomerative Clustering เป็นประเภท Hierarchical clustering คือการแบ่งกลุ่มแบบลำดับ ชั้น Density-Based Spatial Clustering of Application with Noise เป็นประเภท Density-Based clustering คือ การแบ่งกลุ่มแบบความหนาแน่น
การจัดกลุ่มแบบ K-means Clustering K-means คือ หนึ่งในอัลกอริทึมเทคนิคการเรียนรู้ โดยไม่มีผู้สอนที่ง่ายที่สุด เพราะเป็นการแก้ปัญหา การจัดกลุ่มที่รู้จักกันทั่วไป โดยอัลกอริทึม K- Means จะตัดแบ่ง (Partition) วัตถุออกเป็น K กลุ่ม โดยแทนแต่ละกลุ่มด้วยค่าเฉลี่ยของกลุ่ม ซึ่งใช้เป็น จุดศูนย์กลาง (centroid) ของกลุ่มในการวัดระยะห่าง ของข้อมูลในกลุ่มเดียวกัน ในขั้นแรกของการจัดกลุ่ม โดยการหาค่าเฉลี่ยแบบเคย์ต้องกำหนดจำนวนกลุ่ม (K) ที่ต้องการ และกำหนดจุดศูนย์กลางเริ่มต้น จำนวน K จุด สิ่งสำคัญในการกำหนดจุดศูนย์กลาง เริ่มต้นของแต่ละกลุ่มนี้ ควรจะถูกกำหนดด้วยวิธีที่ เหมาะสม เพราะตำแหน่งจุดศูนย์กลางเริ่มต้นที่ แตกต่างกันทำให้ได้ผลลัพธ์สุดท้ายแตกต่างกัน
การจัดกลุ่มแบบ K-means Clustering
ชนิดของตัวแปรที่ใช้ในเทคนิค K-means Clustering ตัวแปรที่ใช้ในเทคนิค K-Means Clustering จะต้อง เป็นตัวแปรเชิงปริมาณ คือ เป็นสเกลอันตรภาค (Interval Scale) หรือสเกลอัตราส่วน (Ratio Scale) โดยไม่สามารถใช้กับข้อมูลที่อยู่ในรูปความถี่ หรือ Binary เหมือนเทคนิค Hierarchical
อัลกอริทึมการจัดกลุ่มโดย K-means นิยมใช้ในการทำ Clustering โดยต้องทำการกำหนด จำนวนกลุ่ม ที่ต้องการจะแบ่ง ในตัวแปร K ซึ่งมี วิธีการทำงาน ดังต่อไปนี้ กำหนดจุดศูนย์กลางของแต่ละคลัสเตอร์ หาระยะห่างระหว่างข้อมูลแต่ละตัวกับจุดศูนย์กลาง (mean) ของแต่ละคลัสเตอร์ กำหนดให้ข้อมูลที่อยู่ในคลัสเตอร์ที่ใกล้สุด คำนวนหาจุดศูนย์กลางของแต่ละคลัสเตอร์ใหม่ ทำซ้ำจนข้อมูลอยู่ในคลัสเตอร์เดิมไม่มีการ เปลี่ยนแปลง
K-means Clustering แบ่งข้อมูลนี้ด้วยเทคนิค K-mean ออกเป็น 3 กลุ่ม
K-means Clustering ทำการสุ่มข้อมูล 3 ตัวเพื่อเป็นจุดศูนย์กลางของคลัส เตอร์
K-means Clustering จัดให้ข้อมูลแต่ละตัวอยู่ในกลุ่มที่มีระยะห่างจากจุด ศูนย์กลางน้อยสุด
K-means Clustering หาจุดศูนย์กลางของแต่ละคลัสเตอร์ x x จุดศูนย์กลางของคลัสเตอร์ 1 จุดศูนย์กลางของคลัสเตอร์ 2 x x จุดศูนย์กลางของคลัสเตอร์3
K-means Clustering วัดระยะห่างเทียบกับจุดศูนย์กลางใหม่อีกครั้ง x x x
K-means Clustering หาจุดศูนย์กลางของแต่ละคลัสเตอร์ใหม่อีกครั้ง x x x จุดศูนย์กลางของคลัสเตอร์ 1 x จุดศูนย์กลางของคลัสเตอร์ 2 x x จุดศูนย์กลางของคลัสเตอร์ 3
K-means Clustering วัดระยะห่างเทียบกับจุดศูนย์กลางใหม่อีกครั้ง x x x
K-means Clustering พบว่าข้อมูลไม่มีการเปลี่ยนแปลงจึงหยุดการทำงาน
สรุปอัลกอริทึมการจัดกลุ่มโดย K-means
สรุปอัลกอริทึมการจัดกลุ่มโดย K-means รูป (a) เป็นการจัดกลุ่มในขั้นตอนแรกโดยที่กำหนด จำนวนกลุ่ม 3 กลุ่ม และกำหนดจุดศูนย์กลางเริ่มต้น ซึ่งใช้สัญลักษณ์ + แทนจุดศูนย์กลางของแต่ละกลุ่ม ทั้ง 3 กลุ่ม จากนั้นวัตถุจะถูกกำหนดให้เข้ากลุ่มที่มีจุด ศูนย์กลางอยู่ใกล้วัตถุนั้นมากที่สุดแสดงได้ดัง รูป (b) จุดศูนย์กลางมีการเปลี่ยนแปลงและเกิด ความสัมพันธ์ระหว่างวัตถุกับจุดศูนย์กลางใหม่ และ จัดวัตถุให้เข้ากลุ่มที่มีจุดศูนย์กลางอยู่ใกล้กับวัตถุนั้น มากที่สุดดังรูป (c)ทำซ้ำเช่นนี้ไปเรื่อย ๆ จนกระทั่ง จุดศูนย์กลางไม่เปลี่ยนแปลงจึงจะได้ผลลัพธ์สุดท้ายดัง รูป (d)
K-means Clustering กำหนด k=3 กำหนดให้ข้อมูลหมายเลข 1,3,5 เป็นจุดศูนย์กลาง ของแต่ละคลัสเตอร์ คำนวนระยะห่างระหว่างจุดศูนย์กลางของคลัสเตอร์ ID SMS Phone Center 1 27 144 X 2 32 44 - 3 41 30 4 125 21 5 105 23 6 20 121 SMS จุดที่ 5 𝑑 35 จุดที่ 3 จุดที่ 1 Phone
K-means Clustering คำนวณระยะห่างด้วย Euclidean distance ผลการแบ่งคลัสเตอร์รอบแรก คลัสเตอร์ที่ 1 ประกอบด้วยข้อมูลหมายเลข 1,6 คลัสเตอร์ที่ 2 ประกอบด้วยข้อมูลหมายเลข 2,3 คลัสเตอร์ที่ 3 ประกอบด้วยข้อมูลหมายเลข 4,5 ID Distance to 1 Distance to 3 Distance to 5 2 (32−27) 2 + (44−144) 2 = 100.12 (32−41) 2 + 44−30) 2 = 16.64 (32−41) 2 + (44−23) 2 = 75.96 4 (125−27) 2 +( 21−144) 2 = 157.27 (125−41) 2 + (21−30) 2 = 84.48 (125−105) 2 + (21−23) 2 = 20.10 6 (20−27) 2 + (121−144) 2 = 24.04 (20−41) 2 + (121−30) 2 = 93.39 (20−105) 2 + (121−23) 2 =129.73
K-means Clustering หาจุดศูนย์กลางของแต่ละคลัสเตอร์ Attribute คลัสเตอร์ 1 คลัสเตอร์ 2 คลัสเตอร์ 3 SMS (27+20)/2 = 23.5 (32+41)/2 =36.5 (125 +105 )/2 = 115 Phone (144 +121)/2 = 132.5 (44 + 30)/2 = 37 (21 + 23)/2 =22 SMS จุดศูนย์กลางของคลัสเตอร์ 3 จุดศูนย์กลางของคลัสเตอร์ 2 จุดศูนย์กลางของคลัสเตอร์ 1 Phone
คำนวณระยะห่างกับจุดศูนย์กลางของแต่ละคลัสเตอร์อีกครั้ง . ID ระยะห่างระหว่างจุดศูนย์กลาง คลัสเตอร์ 1 คลัสเตอร์ 2 คลัสเตอร์ 3 1 (27−23.5) 2 + (144−132.5) 2 = 12.02 (27−36.5) 2 + (144−37) 2 =107.42 (27−115) 2 +( 144−22) 2 = 150.43 2 (32−23.5) 2 + (44−132.5) 2 = 88.91 (32−36.5) 2 + (44−132.5) 2 =8.32 (32−115) 2 + 44−22) 2 = 85.58 3 (41−23.5) 2 + 30−) 2 =103.98 (41−36.5) 2 +( 30−37) 2 =8.32 (41−115) 2 + 30−22) 2 =74.43 4 (125−23.5) 2 + (21−132.5 2 =150.78 (125−36.5) 2 + (21−37) 2 = 89.93 (125−115) 2 + (21−22) 2 = 10.05 5 ( 105−23.5) 2 +( 23−132.5) 2 =136.50 (105−36.5) 2 + (23−37) 2 =69.92 (105−115) 2 + (23−22) 2 =10.05 6 (20−23.5) 2 + (121−132.5) 2 = 12.02 (20−36.5) 2 + 121−37) 2 =85.61 (20−36.5) 2 + (121−22) 2 =137.21 ข้อมูลทุกตัวอยู่ในคลัสเตอร์เดิม จึงหยุดการทำงาน
ผลการแบ่งคลัสเตอร์ คลัสเตอร์ที่ 1 ประกอบด้วยข้อมูลหมายเลข 1,6 คลัสเตอร์ที่ 2 ประกอบด้วยข้อมูลหมายเลข 2,3 คลัสเตอร์ที่ 3 ประกอบด้วยข้อมูลหมายเลข 4,5 SMS ใช้ sms เยอะ ใช้โทรศัพท์เยอะ ใช้แบบทั่วไป Phone
Clustering validity การวัดประสิทธิภาพของ Clustering ใช้ตัววัดประสิทธิภาพ เช่น Average within centroid ค่าเฉลี่ยระยะห่างของทุกจุดจากจุด ศูนย์กลางของคลัสเตอร์ 3 2 1 c Cluster centroid average within centroid distance = d 1c + d 2c + d 3c 3
Clustering validity การวัดประสิทธิภาพของ clustering ปรับเปลี่ยนจำนวนกลุ่มของคลัสเตอร์ (ค่า k) Plot กราฟระหว่างจำนวนกลุ่มของคลัสเตอร์กับค่า average within centroid distance จำนวนกลุ่มที่เหมาะสมคือจุดที่เป็น elbow point
Clustering validity K Avg within distance 2 2865.90 3 1605.40 4 1051.10 5 769.44 6 600.68 7 490.88 8 417.71 9 365.09 10 326.50 Elbow point
Problem with centroid problem เราอาจจะไปหาเทคนิคอื่นๆ เพื่อหาค่า k มาก่อน โดบอาจจะทำ hierarchical แล้วดูว่าจะแบ่งยังไงดี แล้วค่อยเลือก k แล้วค่อยเอามาหา k-means
Agglomerative Clustering เป็นวิธีการทำ Clustering แบบ hierarchical clustering แบบ bottom up ค่อยๆ รวมข้อมูลที่มีความคล้ายคลึงกันเข้าเป็นคลัส เตอร์ไปเรื่อยๆ SMS 1 6 2 3 4 5 1 5 คลัสเตอร์ Phone
Agglomerative Clustering เป็นวิธีการทำ Clustering แบบ hierarchical clustering แบบ bottom up ค่อยๆ รวมข้อมูลที่มีความคล้ายคลึงกันเข้าเป็นคลัส เตอร์ไปเรื่อยๆ SMS 1 6 2 3 4 5 2 1 4 คลัสเตอร์ 2 Phone
Agglomerative Clustering เป็นวิธีการทำ Clustering แบบ hierarchical clustering แบบ bottom up ค่อยๆ รวมข้อมูลที่มีความคล้ายคลึงกันเข้าเป็นคลัส เตอร์ไปเรื่อยๆ SMS 1 6 2 3 4 5 2 3 คลัสเตอร์ 1 3 3 2 Phone
Agglomerative Clustering เป็นวิธีการทำ Clustering แบบ hierarchical clustering แบบ bottom up ค่อยๆ รวมข้อมูลที่มีความคล้ายคลึงกันเข้าเป็นคลัส เตอร์ไปเรื่อยๆ SMS 1 6 2 3 4 5 2 คลัสเตอร์ 4 4 3 3 2 Phone
Agglomerative Clustering เป็นวิธีการทำ Clustering แบบ hierarchical clustering แบบ bottom up ค่อยๆ รวมข้อมูลที่มีความคล้ายคลึงกันเข้าเป็นคลัส เตอร์ไปเรื่อยๆ SMS 1 6 2 3 4 5 1 คลัสเตอร์ 5 5 4 3 2 Phone
Agglomerative Clustering เป็นวิธีการทำ Clustering แบบ hierarchical clustering แบบ bottom up ค่อยๆ รวมข้อมูลที่มีความคล้ายคลึงกันเข้าเป็นคลัส เตอร์ไปเรื่อยๆ SMS 1 6 2 3 4 5 1 คลัสเตอร์ 5 2 คลัสเตอร์ 4 5 2 4 3 คลัสเตอร์ 1 3 4 คลัสเตอร์ 3 2 Phone
Agglomerative Clustering การวัดระยะห่าง (หรือความคล้าย) ระหว่างข้อมูลกับค ลัสเตอร์ Single Link วัดระยะห่างเทียบข้อมูลที่อยู่ใกล้ที่สุดในคลัสเตอร์ Complete Link วัดระยะห่างเทียบข้อมูลที่อยู่ไกลที่สุดในคลัสเตอร์ Average Link วัดระยะห่างเทียบกับข้อมูลทุกตัวในคลัสเตอร์ 4 1 Single Link 2 3 4 1 Complete Link 2 3 4 Average Link 1 2 3
DBSCAN (Density-based spatial clustering of applications ) เป็นการหาบริเวณที่ข้อมูลเกาะกลุ่มกัน ซึ่งสามารถ คำนวณได้จาก data point ที่อยู่รอบๆ ในรัศมีที่ กำหนด การที่จะใช้ DBSCAN ได้ จำเป็นต้องมี 2 parameter คือ Epsilon รัศมีจากจุดศูนย์กลาง MinPts จำนวน data point ขั้นต่ำสำหรับการกำหนด center ใช้ความหนาแน่น ทำให้สามารถใช้ได้กับ shape ที่ แปลกๆ ขนาดต่างๆ
Algorithm ของ DBSCAN 1. ในแต่ละ data point จะคำนวณหา neighbor point ทั้งหมดในรัศมี Epsilon ถ้า data point ไหนมี neighbor point มากกว่าหรือเท่ากับ Min Points ให้ data point นั้นเป็น core point และสร้างเป็น cluster ใหม่ 2. ในแต่ละ core point ถ้ามี neighbor ที่เชื่อมต่อกับ อีก core point ได้ ให้รวมเป็น cluster เดียวกัน 3. ถ้า data point ไหนไม่เชื่อมต่อกับ core point ก็ จะให้ data point นั้นเป็น Noise ซึ่งจะไม่อยู่ใน cluster ใดๆเลย
จำนวนข้อมูลที่อยู่ในรัศมี DBSCAN พารามิเตอร์ที่สำคัญของ DBSCAN Epsilon เป็นการระบุรัศมีรอบข้อมูล Min points เป็นการระบุจำนวนข้อมูลในรัศมี เลื่อนไปยังจุดถัดไป จำนวนข้อมูลที่อยู่ในรัศมี epsilon
DBSCAN พารามิเตอร์ที่สำคัญของ DBSCAN Epsilon เป็นการระบุรัศมีรอบข้อมูล Min points เป็นการระบุจำนวนข้อมูลในรัศมี เลื่อนไปยังจุดถัดไป
DBSCAN พารามิเตอร์ที่สำคัญของ DBSCAN Epsilon เป็นการระบุรัศมีรอบข้อมูล Min points เป็นการระบุจำนวนข้อมูลในรัศมี เลื่อนไปยังจุดถัดไป
DBSCAN พารามิเตอร์ที่สำคัญของ DBSCAN Epsilon เป็นการระบุรัศมีรอบข้อมูล Min points เป็นการระบุจำนวนข้อมูลในรัศมี เลื่อนไปยังจุดถัดไป คลัสเตอร์ 1
DBSCAN พารามิเตอร์ที่สำคัญของ DBSCAN Epsilon เป็นการระบุรัศมีรอบข้อมูล Min points เป็นการระบุจำนวนข้อมูลในรัศมี คลัสเตอร์ 2 คลัสเตอร์ 1
Interpretation Cluster interpretation: วัดกันด้วยความหมายของ cluster ว่าสามารถตีความได้ดีหรือไม่ จะใช้ visualization tools ช่วย ใช้ stat มาช่วยอธิบาย เวลาทำ clustering แล้ว อาจจะเอาตัวแปรที่ไม่ได้ ใช้ทำ clustering มาเป็นตัว visualize
The end Q & A