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

ความแตกต่างระหว่าง K-Means และ DBSCAN


K-Means

K-means clustering เป็นอัลกอริทึมแบ่งกลุ่ม (partitioning algorithm) K-means จัดสรรข้อมูลแต่ละชิ้นในชุดข้อมูลให้กับกลุ่มใหม่ที่สร้างขึ้นเพียงกลุ่มเดียว ข้อมูลหรือจุดข้อมูลจะถูกกำหนดให้กับกลุ่มที่ใกล้ที่สุดโดยใช้ขนาดระยะทางหรือความคล้ายคลึง

ใน K-means วัตถุจะถูกกำหนดให้กับ centroid ที่ใกล้ที่สุด สามารถกำหนดข้อจำกัด cannot-link และปรับปรุงกระบวนการกำหนด centroid ให้เป็น centroid ที่ใกล้ที่สุดและเหมาะสม เมื่อวัตถุถูกกำหนดให้ centroid ตามลำดับ ในแต่ละขั้นตอนสามารถตรวจสอบว่าการกำหนดจนถึงตอนนี้ไม่ละเมิดข้อจำกัด cannot-link วัตถุจะถูกกำหนดให้ centroid ที่ใกล้ที่สุด ดังนั้นการกำหนดจึงเคารพข้อจำกัด cannot-link

DBSCAN

DBSCAN ย่อมาจาก Density-Based Spatial Clustering of Applications with Noise เป็นอัลกอริทึมจัดกลุ่มแบบความหนาแน่น (density-based) อัลกอริทึมนี้ขยายพื้นที่ที่มีความหนาแน่นพอสมควรเป็นกลุ่ม และค้นพบกลุ่มที่มีรูปร่าง tùy ý ในฐานข้อมูลเชิงพื้นที่ที่มีสัญญาณรบกวน กำหนดกลุ่มเป็นเซตสูงสุดของจุดที่เชื่อมต่อกันด้วยความหนาแน่น

กลุ่มแบบความหนาแน่นคือเซตของวัตถุที่เชื่อมต่อกันด้วยความหนาแน่น ซึ่งเป็น maximal ว่าด้วย density-reachability วัตถุทุกชิ้นที่ไม่ได้อยู่ในกลุ่มใดๆ ถูกมองว่าเป็นสัญญาณรบกวน (noise)

DBSCAN ตรวจสอบกลุ่มโดยตรวจสอบ ε-neighborhood ของทุกจุดในฐานข้อมูล หาก ε-neighborhood ของจุด p มีจุดมากกว่า MinPts จะสร้างกลุ่มใหม่ด้วย p เป็น core element DBSCAN รวบรวมวัตถุที่ density-reachable อย่างต่อเนื่องจาก core element เหล่านี้ ซึ่งอาจรวมถึงการรวมกลุ่ม density-reachable หลายกลุ่ม กระบวนการสิ้นสุดเมื่อไม่มีจุดใหม่ที่เพิ่มเข้าไปในกลุ่มใดๆ ได้

การเปรียบเทียบ K-Means และ DBSCAN

K-MeansDBSCAN
K-means โดยทั่วไปจัดกลุ่มวัตถุทั้งหมดDBSCAN ทิ้งวัตถุที่มันกำหนดว่าเป็นสัญญาณรบกวน
K-means ต้องการแนวคิดกลุ่มแบบโปรโตไทป์DBSCAN ต้องการแนวคิดแบบความหนาแน่น
K-means มีปัญหากับกลุ่มที่ไม่ใช่ทรงกลม และกลุ่มขนาดต่างกันDBSCAN จัดการกลุ่มขนาดและรูปร่างต่างกันได้ และไม่ได้รับอิทธิพลมากจากสัญญาณรบกวนหรือ outliers
K-means ใช้ได้กับข้อมูลที่มี centroid ชัดเจน เช่น mean หรือ medianDBSCAN ต้องการนิยามความหนาแน่นแบบยุคลิดเป็นเรื่องที่มีความหมายสำหรับข้อมูล
K-means ใช้ได้กับข้อมูลเบาบาง มิติสูง เช่น ข้อมูลข้อความDBSCAN โดยทั่วไปทำงานไม่ดีกับข้อมูลแบบนั้น เพราะนิยามความหนาแน่นแบบยุคลิดทำงานไม่ดีกับข้อมูลมิติสูง
K-means แบบพื้นฐานคล้ายวิธีทางสถิติ (mixture models) ที่สมมติว่ากลุ่มทุกกลุ่มมาจากการแจกแจง Gaussian ทรงกลมที่มี mean ต่างกันแต่ covariance matrix เหมือนกันDBSCAN ไม่สมมติอะไรเกี่ยวกับการแจกแจงของเรคคอร์ด