ยินดีต้อนรับสู่โลกของ Hierarchical Clustering!

ในการเดินทางผ่านโลกของ Unsupervised Learning เราได้ดูเรื่อง K-means clustering ไปแล้ว แม้ว่า K-means จะมีประสิทธิภาพสูง แต่ก็มีข้อ "น่ารำคาญ" อย่างหนึ่ง คือเราต้องบอกคอมพิวเตอร์ให้ชัดเจนว่าต้องการกี่กลุ่ม (K) ก่อนที่จะเริ่มทำ! แล้วถ้าเราไม่รู้ล่ะ? หรือถ้าเราอยากเห็นว่ากลุ่มย่อยๆ ซ้อนอยู่ในกลุ่มใหญ่ได้อย่างไร?

นั่นคือจุดที่ Hierarchical Clustering โดดเด่นขึ้นมา ในบทนี้เราจะเรียนรู้วิธีสร้าง "แผนภาพต้นไม้" ของข้อมูล ซึ่งช่วยให้เราสามารถตัดสินใจเลือกจำนวนกลุ่มได้ หลังจาก การวิเคราะห์เสร็จสิ้นแล้ว นี่เป็นวิธีที่เหล่านักคณิตศาสตร์ประกันภัยชื่นชอบเพราะมันให้แผนภาพที่เห็นภาพชัดเจนว่าข้อมูลแต่ละจุดมีความสัมพันธ์กันอย่างไร มาเริ่มกันเลย!

1. แนวคิดหลัก: Agglomerative Clustering

รูปแบบที่พบได้บ่อยที่สุดของ hierarchical clustering คือ Agglomerative clustering อย่าเพิ่งตกใจกับชื่อเรียกยากๆ นี้เลย มันก็แค่หมายถึงการทำงานแบบ "ล่างขึ้นบน" (bottom-up) เท่านั้นเอง

ลองนึกภาพงานรวมญาติที่ทุกคนยังเป็นคนแปลกหน้าต่อกัน เริ่มแรกคนสองคนที่เหมือนกันที่สุดจะเริ่มคุยกัน จากนั้นคน (หรือกลุ่มคน) สองกลุ่มถัดมาที่มีความคล้ายกันมากที่สุดก็จะเข้ามารวมกลุ่มด้วย ในที่สุดทุกคนก็จะกลายเป็นส่วนหนึ่งของกลุ่มก้อนขนาดใหญ่กลุ่มเดียว

ขั้นตอนการทำงานของอัลกอริทึม (ทีละขั้นตอน):

1. เริ่มต้นด้วยข้อมูล \(n\) ตัว ให้ถือว่าแต่ละจุดข้อมูลเป็นกลุ่มของตัวเอง (ดังนั้นตอนเริ่มต้นคุณจะมี \(n\) กลุ่ม)
2. คำนวณ ความไม่คล้ายคลึง (dissimilarity) หรือระยะห่างระหว่างทุกคู่ของกลุ่ม
3. ค้นหากลุ่มสองกลุ่มที่ คล้ายกันมากที่สุด (ระยะห่างน้อยที่สุด) แล้วรวมเข้าด้วยกันเป็นกลุ่มใหม่กลุ่มเดียว ตอนนี้คุณจะมี \(n-1\) กลุ่ม
4. ทำซ้ำขั้นตอนที่ 2 และ 3 ไปเรื่อยๆ จนกระทั่งข้อมูลทุกตัวถูกรวมเข้าเป็นกลุ่มใหญ่กลุ่มเดียวที่ครอบคลุมทุกอย่าง

เกร็ดเล็กๆ: ใน hierarchical clustering เราไม่ได้แค่จัดกลุ่มเท่านั้น แต่เรายังบันทึก ลำดับ และ ระยะห่าง ที่แต่ละกลุ่มถูกรวมเข้าด้วยกัน ประวัติการรวมกลุ่มนี้แหละคือสิ่งที่ทำให้วิธีนี้พิเศษ

2. Dendrogram: แผนที่นำทางแบบเห็นภาพ

ผลลัพธ์ของ hierarchical clustering คือแผนภาพรูปต้นไม้ที่สวยงามซึ่งเรียกว่า Dendrogram นี่คือเครื่องมือที่สำคัญที่สุดในการตีความผลลัพธ์ของคุณ

วิธีอ่าน Dendrogram:
- ใบไม้ (leaves) ที่อยู่ด้านล่างสุด แทนจุดข้อมูลแต่ละจุด
- เมื่อคุณไล่ระดับขึ้นไป ใบไม้จะรวมกันเป็น กิ่ง (branches)
- ความสูงในแนวตั้ง ของจุดที่รวมกลุ่ม (เส้นแนวนอนที่เชื่อมกิ่งไม้สองกิ่งเข้าด้วยกัน) แสดงถึงว่ากลุ่มสองกลุ่มนั้นมีความ แตกต่าง กันมากเพียงใด ยิ่งจุดรวมสูงเท่าไหร่ แสดงว่ากลุ่มเหล่านั้นยิ่งมีความไม่คล้ายคลึงกันมากขึ้นเท่านั้น
- กฎสำคัญ: คุณไม่สามารถตัดสินความคล้ายคลึงจากความใกล้ชิดของใบไม้ในแนวนอนได้ คุณ ต้อง ดูความสูงในแนวตั้งที่พวกมันเริ่มแชร์กิ่งไม้เดียวกันเป็นครั้งแรกเท่านั้น

การเลือกจำนวนกลุ่ม

ต่างจาก K-means เราไม่จำเป็นต้องเลือก \(K\) ตั้งแต่เริ่มต้น แต่เราจะดูที่ dendrogram แล้วตัดสินใจว่าจะ "ตัด" ต้นไม้ตรงไหนด้วยเส้นแนวนอน จำนวนเส้นแนวตั้งที่เส้นตัดของคุณลากผ่าน คือจำนวนกลุ่มที่คุณสร้างขึ้นมานั่นเอง

การเปรียบเทียบ: ลองจินตนาการว่า dendrogram คือต้นไม้จริงๆ ถ้าคุณเลื่อยลำต้นที่ความสูงระดับหนึ่ง จำนวนกิ่งไม้ที่แยกออกจากกันและร่วงลงพื้น นั่นแหละคือจำนวนกลุ่มที่คุณได้!

สรุปประเด็นสำคัญ: Dendrogram เพียงรูปเดียวสามารถแสดงถึงจำนวนกลุ่มได้ตั้งแต่ 1 ถึง \(n\) กลุ่ม คุณแค่เลือกความสูงที่ "ตัด" แล้วดูสมเหตุสมผลที่สุดสำหรับปัญหาทางธุรกิจของคุณ

3. Linkage: เราวัดระยะห่างระหว่างกลุ่มอย่างไร?

เรารู้วิธีวัดระยะห่างระหว่างสองจุดแล้ว (โดยทั่วไปคือ Euclidean distance) แต่เราจะวัดระยะห่างระหว่างจุดหนึ่งจุดกับ กลุ่ม ของจุด หรือระหว่าง สองกลุ่ม ได้อย่างไร? สิ่งนี้เรียกว่า Linkage

ประเภทของ linkage ที่พบบ่อยที่สุด 4 แบบในหลักสูตร SRM คือ:

1. Complete (Max): ระยะห่างระหว่างสองกลุ่ม คือระยะห่างระหว่างจุดที่ ไกลกันที่สุด ของทั้งสองกลุ่ม มักจะสร้างกลุ่มที่แยกออกจากกันได้ดีและมีความกระชับ
2. Single (Min): ระยะห่างคือระยะห่างระหว่างจุดที่ ใกล้กันที่สุด ของทั้งสองกลุ่ม คำเตือน: วิธีนี้อาจนำไปสู่ปรากฏการณ์ "chaining" ที่กลุ่มข้อมูลมีลักษณะเป็นเส้นยาวๆ แทนที่จะเป็นวงกลมที่สวยงาม
3. Average: ระยะห่างคือค่าเฉลี่ยของระยะห่างระหว่างทุกคู่จุดระหว่างกลุ่ม A และกลุ่ม B วิธีนี้ได้รับความนิยมมากเพราะเป็น "ทางสายกลาง"
4. Centroid: ระยะห่างวัดจาก จุดศูนย์กลาง (centroids) ของสองกลุ่มนั้น หมายเหตุ: วิธีนี้อาจทำให้เกิดปัญหาประหลาดที่เรียกว่า "inversion" ซึ่งจุดการรวมกลุ่มเกิดขึ้น ต่ำกว่า จุดการรวมกลุ่มก่อนหน้า ทำให้ dendrogram อ่านยาก

กล่องสรุปความจำ:
- Complete & Average: โดยทั่วไปเป็นที่นิยมมากกว่า เพราะสร้างต้นไม้ที่สมดุล
- Single: อาจสร้างกลุ่มที่เป็น "เส้นหางยาว" ได้
- Centroid: ใช้ในบางสาขา แต่อาจเกิดปัญหา "inversion" ที่ทำให้แผนภาพดูยุ่งเหยิง

4. การเลือกหน่วยวัดความไม่คล้ายคลึง (Dissimilarity Measure)

แม้ว่า Euclidean distance (ระยะทางแบบเส้นตรง) จะเป็นค่าเริ่มต้น แต่ก็ไม่ใช่ทางเดียวที่เราเลือกใช้ได้ บางครั้งเราก็ใช้ Correlation-based distance

จะใช้อะไรเมื่อไหร่?
- ใช้ Euclidean distance ถ้าคุณสนใจใน ขนาด (magnitude) ของค่าต่างๆ (เช่น ปริมาณยอดขายรวม)
- ใช้ Correlation-based distance ถ้าคุณสนใจใน รูปแบบ (pattern) หรือ รูปร่าง ของข้อมูล (เช่น หุ้นสองตัวขึ้นและลงพร้อมกันหรือไม่ แม้ว่าตัวหนึ่งจะราคา $10 และอีกตัวราคา $100 ก็ตาม)

รู้หรือไม่? การ ปรับสเกล (scaling) ข้อมูลสำคัญมากในที่นี้! หากตัวแปรหนึ่งคือ "รายได้" (หน่วยเป็นพันดอลลาร์) และอีกตัวหนึ่งคือ "อายุ" (หน่วยเป็นปี) ตัวแปร "รายได้" จะมีอิทธิพลต่อการคำนวณระยะทางมากเกินไปเพียงเพราะตัวเลขมันใหญ่กว่า ปกติแล้วเราจึงนิยมทำ standardize ตัวแปรให้มีค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเป็น 1 ก่อนทำการจัดกลุ่ม

5. เปรียบเทียบ Hierarchical กับ K-means Clustering

นักศึกษามักถามว่า "วิธีไหนดีกว่ากัน?" คำตอบคือ: "ขึ้นอยู่กับสถานการณ์!"

K-means ดีกว่าเมื่อ:

- คุณมีชุดข้อมูลขนาดใหญ่มาก (มักจะประมวลผลเร็วกว่า)
- คุณมีความคิดที่ชัดเจนว่าต้องการกี่กลุ่ม

Hierarchical ดีกว่าเมื่อ:

- คุณต้องการเห็นโครงสร้างเบื้องหลัง หรือความสัมพันธ์แบบซ้อนทับกัน
- คุณไม่อยากตัดสินใจเลือกจำนวน \(K\) ตั้งแต่ต้น
- คุณต้องการนำเสนอภาพ (dendrogram) ให้ผู้มีส่วนเกี่ยวข้องเห็นภาพชัดเจน

ข้อควรระวัง: อย่าเพิ่งสรุปว่า hierarchical clustering "แม่นยำกว่า" เพียงเพราะมันดูซับซ้อนกว่า ทั้งสองวิธีอาจ "ผิด" ได้หากข้อมูลนั้นไม่ได้มีกลุ่มตามธรรมชาติอยู่จริง!

6. สรุปและเคล็ดลับสุดท้าย

Hierarchical clustering เป็นวิธีที่ยืดหยุ่นและแสดงภาพได้ชัดเจนในการจัดกลุ่มข้อมูล จำประเด็นสำคัญเหล่านี้สำหรับสอบไว้ให้ดี:

- มันคือวิธีแบบ Agglomerative (ล่างขึ้นบน)
- Dendrogram คือเครื่องมือหลักสำหรับการแสดงภาพ
- ความสูง ใน dendrogram แสดงถึงความไม่คล้ายคลึงกัน
- Linkage (Complete, Average, Single, Centroid) คือตัวกำหนดวิธีวัดระยะห่างระหว่างกลุ่ม
- Standardizing ข้อมูลมักเป็นสิ่งจำเป็นเพื่อให้มั่นใจว่าทุกตัวแปรมีส่วนร่วมเท่าๆ กัน

ไม่ต้องกังวลถ้าเรื่อง linkage ดูเป็นนามธรรมไปสักหน่อย! แค่จำไว้ว่า "Complete" มองหาเพื่อนบ้านที่ไกลที่สุด ส่วน "Single" มองหาเพื่อนบ้านที่ใกล้ที่สุด ส่วนใหญ่แล้ว "Complete" และ "Average" คือตัวโปรดที่มักจะสร้างต้นไม้ที่สะอาดและใช้งานได้จริง

คุณทำได้แน่นอน! Hierarchical clustering เป็นแค่การจัดระเบียบห้องที่รกด้วยการรวมของที่คล้ายกันไว้ด้วยกัน แล้วเอาแต่ละกลุ่มใส่กล่องที่ใหญ่ขึ้นเรื่อยๆ จนกระทั่งทุกอย่างอยู่ในกล่องใบใหญ่ใบเดียว เก็บภาพนี้ไว้ในใจ แล้วคุณจะเชี่ยวชาญบทนี้ในเวลาอันสั้น!