Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ลักษณะสำคัญของอัลกอริทึมจัดกลุ่ม (Clustering Algorithms)


ลักษณะสำคัญของอัลกอริทึมจัดกลุ่ม

มีลักษณะหลักของอัลกอริทึมจัดกลุ่มดังนี้:

1. Order Dependence (ความขึ้นอยู่กับลำดับข้อมูล)

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

2. Non-determinism (ไม่เป็นeterministic)

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

3. Scalability (ความสามารถในการขยาย)

ชุดข้อมูลมักมีวัตถุถึงพันชิ้น อัลกอริทึมจัดกลุ่มสำหรับข้อมูลขนาดใหญ่ต้องมีความซับซ้อนด้านเวลาและพื้นที่แบบเส้นตรงหรือใกล้เคียงกับเส้นตรง แม่อัลกอริทึมที่มีความซับซ้อน O(m²) ก็ไม่เหมาะสำหรับชุดข้อมูลขนาดใหญ่ นอกจากนี้ เทคนิคจัดกลุ่มสำหรับชุดข้อมูลขนาดใหญ่ไม่สามารถสมมติได้ว่าข้อมูลทั้งหมดจะพอดีในหน่วยความจำหลัก หรือเข้าถึงองค์ประกอบข้อมูลแบบสุ่มได้ อัลกอริทึมแบบนี้จึงไม่เป็นไปได้สำหรับชุดข้อมูลขนาดใหญ่

4. Parameter Selection (การเลือกพารามิเตอร์)

อัลกอริทึมจัดกลุ่มบางตัวมีพารามิเตอร์หนึ่งหรือหลายตัวที่ต้องผู้ใช้กำหนด การเลือกค่าที่เหมาะสมอาจยาก ทั่วไปแล้ว "พารามิเตอร์น้อยเท่าที่สุดเท่าที่ดี" การเลือกค่าพารามิเตอร์จะยากขึ้นอีกถ้าการเปลี่ยนแปลงเล็กน้อยทำให้ผลการจัดกลุ่มเปลี่ยนไปอย่างมาก สุดท้าย ถ้าไม่มีกระบวนการ (อาจรวมถึงการป้อนข้อมูลจากผู้ใช้) สำหรับกำหนดค่าพารามิเตอร์ ผู้ใช้จะต้องลองผิดลองถูกเพื่อหาค่าที่เหมาะสม

5. Transforming the clustering issues to another domain (การแปลงปัญหาจัดกลุ่มไปยังโดเมนอื่น)

วิธีการหนึ่งของเทคนิคจัดกลุ่มบางอย่างคือการแมปปัญหาจัดกลุ่มไปเป็นปัญหาในโดเมนอื่น การจัดกลุ่มแบบกราฟ (Graph-based clustering) แมปงานค้นหากลุ่มไปเป็นงานแบ่งกราฟความใกล้เคียง (proximity graph) ให้เป็นองค์ประกอบที่เชื่อมต่อกัน

6. Treating Clustering as an Optimization Problem (การจัดการจัดกลุ่มเป็นปัญหาเพิ่มประสิทธิภาพ)

การจัดกลุ่มถูกมองเป็นปัญหาเพิ่มประสิทธิภาพ: แบ่งจุดข้อมูลเป็นกลุ่มเพื่อเพิ่มคุณลักษณะของชุดกลุ่มที่ได้ตามฟังก์ชันวัตถุประสงค์ที่ผู้ใช้กำหนด ตัวอย่างเช่น K-means พยายามหาชุดกลุ่มที่ลดผลรวมระยะทางยกกำลังสองจากแต่ละจุดไปยัง centroid ของกลุ่มที่ใกล้ที่สุด ปัญหาแบบนี้สามารถแก้ได้โดยการนับชุดกลุ่มที่เป็นไปได้ทั้งหมดและเลือกชุดที่มีค่าฟังก์ชันวัตถุประสงค์ดีที่สุด แต่วิธีการตรวจสอบแบบครบทุกกรณี (exhaustive) ใช้คอมพิวตัทไม่ได้