\(~~~~~~~~~\)DBSCAN\(~~~~~~~~~\)
การจัดกลุ่มเชิงความหนาแน่น

อ.ดร. สมศักดิ์ จันทร์เอม

วิทยาลัยนานาชาตินวัตกรรมดิจิทัล มหาวิทยาลัยเชียงใหม่

14 พฤศจิกายน 2568

DBSCAN Explain

DBSCAN คืออะไร?

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) เป็นอัลกอริธึมการจัดกลุ่มข้อมูล (Clustering) แบบ Density-Based ซึ่งใช้ในการค้นหากลุ่มข้อมูลที่มีความหนาแน่นสูงและสามารถระบุจุดข้อมูลที่เป็น Noise (สัญญาณรบกวนหรือตัวแปลกปลอม) ได้ โดยไม่จำเป็นต้องระบุจำนวนกลุ่มล่วงหน้าเหมือน K-means

หลักการทำงาน:

  1. Core Point: จุดที่มีจุดอื่น ๆ อยู่ภายในรัศมีที่กำหนด (ε - epsilon) และมีจำนวนเพื่อนบ้านอย่างน้อยเท่ากั บค่า MinPts (จำนวนจุดขั้นต่ำที่ต้องการ)

  2. Border Point: จุดที่อยู่ในรัศมีของ Core Point แต่มีจุดเพื่อนบ้านน้อยกว่าค่า MinPts

  3. Noise Point: จุดที่ไม่ใช่ทั้ง Core Point และ Border Point

ขั้นตอนการทำงาน:

  1. เลือกจุดเริ่มต้นแบบสุ่ม

  2. ตรวจสอบจุดที่อยู่ภายในรัศมี ε (epsilon) จากจุดเริ่มต้น

    • ถ้าจำนวนจุดในรัศมีนั้น ≥ MinPts → เป็น Core Point และขยายกลุ่มจากจุดนี้

    • ถ้าจำนวนน้อยกว่า MinPts → เป็น Noise Point หรือ Border Point

  3. ขยายกลุ่ม (Cluster) โดยการเชื่อมต่อ Core Point ที่อยู่ใกล้กัน

  4. ทำซ้ำจนกว่าทุกจุดจะถูกจัดกลุ่มหรือถูกจัดเป็น Noise

จุดเด่น:

  • ไม่จำเป็นต้องระบุจำนวนกลุ่มล่วงหน้า

  • จัดการกับกลุ่มข้อมูลที่มีรูปร่างซับซ้อนได้ดี (เช่น รูปร่างไม่เป็นทรงกลมหรือวงรี)

  • สามารถระบุ Noise ได้ ซึ่งเหมาะสำหรับข้อมูลที่มีตัวแปรแปลกปลอม

ข้อจำกัด:

  • การเลือกค่าพารามิเตอร์ ε และ MinPts มีความสำคัญมาก หากเลือกไม่เหมาะสม อาจได้ผลลัพธ์ที่ไม่ดี

  • ประสิทธิภาพลดลงเมื่อใช้กับข้อมูลที่มีมิติสูง (High-dimensional data)

  • ไม่เหมาะกับข้อมูลที่มีความหนาแน่นไม่สม่ำเสมอ

ตัวอย่างแสดง ขั้นตอนการทำงาน

  1. แสดงข้อมูล
  2. ระบุ Core Point และ Border Point
  3. แสดงการขยายกลุ่ม (Cluster Expansion)
  4. แสดงผลลัพธ์สุดท้าย (Final Clustering)

ขั้นตอนที่ 1: เตรียมข้อมูล

แสดงข้อมูลดิบ ซึ่งข้อมูลจะกระจายตัวเป็น 3 กลุ่มชัดเจน

ขั้นตอนที่ 2: ระบุ Core Point และ Border Point

แยกประเภทจุดเป็น Core Point (เขียว), Border Point (ส้ม), และ Noise (แดง)

ขั้นตอนที่ 3: แสดงการขยายกลุ่ม (Cluster Expansion)

แสดงการขยายกลุ่ม โดย Core Point ที่เชื่อมต่อกันจะเป็นกลุ่มเดียวกัน

ขั้นตอนที่ 4: แสดงผลลัพธ์สุดท้าย (Final Clustering)

หมายเหตุ

การเลือกพารามิเตอร์ eps และ minPts มีผลต่อผลลัพธ์

Noise คืออะไร?

คำว่า “noise” (สัญญาณรบกวน) หมายถึง จุดข้อมูลที่ไม่สามารถจัดอยู่ในกลุ่มใดกลุ่มหนึ่งได้ เพราะมีความหนาแน่นไม่เพียงพอ โดยมีลักษณะดังนี้:

  1. จุด noise คือ จุดข้อมูลที่ไม่มีจุดอื่นๆ อยู่ใกล้พอภายในรัศมีที่กำหนด (เรียกว่า epsilon หรือ ε) หรือ มีจำนวนน้อยกว่า minPts (จำนวนจุดขั้นต่ำที่ต้องการเพื่อสร้างกลุ่ม)
  2. จุดเหล่านี้มักจะเป็น outliers หรือ ข้อมูลที่อยู่กระจัดกระจาย ไม่สามารถรวมเป็นกลุ่มที่มีความหนาแน่นสูงได้
  3. ในผลลัพธ์ของ DBSCAN จุด noise มักจะถูกจัดประเภทให้เป็น -1 เพื่อบ่งชี้ว่าไม่อยู่ในกลุ่มใดๆ

ตัวอย่าง:

หากตั้งค่า ε = 0.5 และ minPts = 5 แล้วจุดข้อมูลจุดหนึ่งมีเพียง 2 จุดอยู่ใกล้ๆ กันภายในระยะ ε จุดนั้นจะถูกระบุว่าเป็น noise เพราะไม่ถึงเกณฑ์ minPts ที่กำหนดไว้

การระบุ noise ใน DBSCAN ช่วยให้การจัดกลุ่มมีความทนทานต่อ outliers และทำให้ได้กลุ่มข้อมูลที่มีความหนาแน่นสูงจริงๆ โดยไม่ถูกรบกวนจากจุดที่กระจัดกระจาย

DBSCAN Step by Step

PCA Explain

PCA

PCA (Principal Component Analysis) เป็นเทคนิคทางสถิติที่ใช้สำหรับการลดมิติ (Dimensionality Reduction) และการวิเคราะห์ข้อมูล โดยมีวัตถุประสงค์หลักเพื่อ:

  1. ลดจำนวนตัวแปร (Dimensions) โดยไม่สูญเสียข้อมูลสำคัญมากเกินไป

  2. หาทิศทางหลัก (Principal Components) ที่อธิบายความแปรปรวนในข้อมูลได้มากที่สุด

หลักการทำงาน

  • PCA จะทำการแปลงตัวแปรต้นฉบับ (ซึ่งอาจมีความสัมพันธ์กัน) ให้กลายเป็นชุดของตัวแปรใหม่ที่เรียกว่า “Principal Components” (PCs) ซึ่งเป็นอิสระต่อกัน (Orthogonal)

  • PC1 (Component ที่ 1) จะมีความแปรปรวนสูงสุด หมายความว่าอธิบายความผันผวนในข้อมูลได้มากที่สุด

  • PC2, PC3, … จะเรียงตามลำดับความสำคัญ โดยแต่ละตัวจะแปรผันในทิศทางที่ไม่ซ้ำกับตัวก่อนหน้า

ตัวอย่างการใช้งาน

  • ลดมิติของข้อมูลเพื่อให้สามารถวิเคราะห์หรือสร้างโมเดลได้ง่ายขึ้น (เช่น การทำ Visualization แบบ 2D หรือ 3D)

  • ขจัดปัญหา Multicollinearity ในการสร้างโมเดลทางสถิติ

  • ใช้ใน Machine Learning เพื่อปรับปรุงประสิทธิภาพของโมเดลโดยลดจำนวน Features ที่ไม่จำเป็น

Step 1 — Standardization (center & scale)

Step 2 — Covariance Matrix (ของข้อมูลที่ถูก standardize แล้ว)

Step 3 — Eigen Decomposition (Eigenvalues & Eigenvectors)

eigen values

eigen vector

Step 4 — Scree Plot (Explained variance per PC + Cumulative)

Step 5 — Projection to PC Space (Scores) + (optional) Loadings Arrows

1. ความหมายของแกน

  • PC1 (แกนนอน) เป็นแกนที่อธิบายความแปรปรวนมากที่สุดในข้อมูล ≈ 70–75%
  • PC2 (แกนตั้ง) อธิบายความแปรปรวนที่เหลือ ≈ 20–25% ดังนั้นจุดที่อยู่ห่างจากจุดศูนย์ในแนวแกน PC1 คือดอกไม้ที่ “แตกต่างมากที่สุด” เมื่อพิจารณาเรื่องขนาดกลีบ

2. การตีความลูกศร (Loadings)

ลูกศร ทิศทาง/ความสัมพันธ์ การตีความ
Petal Length & Petal Width ชี้ไปทางขวา (แกน PC1) และอยู่ใกล้กัน มีความสัมพันธ์บวกสูงกัน → ทั้งสองบ่งชี้ขนาดของกลีบดอก เป็นตัวแปรที่กำหนด PC1 มากที่สุด
Sepal Length ชี้ทางขวาเฉียงลง สัมพันธ์บวกกับ PC1 เช่นกัน แต่ไม่แรงเท่ากลีบดอก (ช่วยอธิบายความแตกต่างของชนิด versicolor / virginica)
Sepal Width ชี้ไปทางซ้าย (ตรงข้ามกับตัวอื่น) สัมพันธ์ทางลบกับ PC1 → ดอกที่กลีบใหญ่ (ค่า Petal สูง) มักมี Sepal Width แคบ กว่า

3. การตีความกลุ่มจุด

  • Setosa (สีชมพู) อยู่ด้านซ้ายสุดของกราฟ → มีค่า Petal Length / Width ต่ำมาก แต่ Sepal Width สูง → แตกต่างชัดเจนจากกลุ่มอื่นบน PC1

  • Versicolor (สีเขียว) อยู่กึ่งกลาง → ขนาดกลีบปานกลาง ค่าของ Petal สูงกว่า setosa แต่ยังต่ำกว่า virginica

  • Virginica (สีน้ำเงิน) อยู่ทางขวาสุด → กลีบใหญ่ที่สุด ค่า Petal Length และ Width สูง → คะแนน PC1 สูง

4. สรุปภาพรวม

  • แกน PC1 ≈ “ขนาดกลีบดอก (petal size dimension)”

  • แกน PC2 ≈ “สัดส่วน sepal–petal หรือ sepal width dimension”

  • ลูกศรยาวและขนานกันมาก → ตัวแปรสำคัญและสัมพันธ์กันสูง

  • ลูกศรตรงข้าม → ตัวแปรมีความสัมพันธ์ทางลบ

✳️ สรุปสุดท้าย

  • Petal Length และ Petal Width เป็นตัวกำหนดหลักของ PC1

  • ทำให้ “setosa–versicolor–virginica” แยกออกจากกันอย่างชัดเจนตามแนวแกนนอน

  • ส่วน Sepal Width ช่วยแยกความแตกต่างย่อยในแนวตั้ง (PC2)

ดังนั้นภาพนี้แสดงให้เห็นชัดว่า

🌸 การแยกชนิดของดอกไม้ใน Iris dataset ส่วนใหญ่ถูกอธิบายด้วย “ขนาดกลีบดอก

ตัวอย่างใน Orange Data Mining

Google Drive

Iris dataset 3d plot

Reference

  • Ester, M., Kriegel, H. P., Sander, J., & Xu, X. (1996). A density-based algorithm for discovering clusters in large spatial databases with noise. In Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96) (pp. 226–231).

  • Zhu, D., & Tian, Y. (2019). NS-DBSCAN: A density-based clustering algorithm in network space. ISPRS International Journal of Geo-Information, 8(5), 218. https://doi.org/10.3390/ijgi8050218

  • Zhu, D., & Tian, Y. (2021). MDST-DBSCAN: A density-based clustering method for multidimensional spatiotemporal data. ISPRS International Journal of Geo-Information, 10(6), 391. https://doi.org/10.3390/ijgi10060391

  • Pearson, K. (1901). On lines and planes of closest fit to systems of points in space. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, 2(11), 559–572. https://doi.org/10.1080/14786440109462720

  • Hotelling, H. (1933). Analysis of a complex of statistical variables into principal components. Journal of Educational Psychology, 24(6), 417–441. https://doi.org/10.1037/h0071325

  • Jolliffe, I. T., & Cadima, J. (2016). Principal component analysis: A review and recent developments. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 374(2065), 20150202. https://doi.org/10.1098/rsta.2015.0202