Sử dụng khái niệm Core point, Border point và Noise point như phần trước, thuật toán DBSCAN có thể được diễn đạt không chính thức như sau. Hai Core point đủ gần (trong khoảng Eps với điểm còn lại) được đặt vào cùng một nhóm. Tương tự như vậy, các Border point nào đủ gần với Core point cũng được đặt vào cùng nhóm như Core point (mối liên hệ này có thể được giải quyết nếu một Border point gần với các Core point của nhóm khác). Noise point được bỏ qua. Chi tiết chính thức được trình bày trong thuật toán 8.4. Thuật toán sử dụng cùng các khái niệm và tìm được cùng các nhóm như trong DBSCAN nguyên thủy, nhưng đã được điều chỉnh để đơn giản
Thuật toán 8.4: Thuật toán DBSCAN
1. Gắn nhãn cho tất cả mọi điểm là Core point, Border point hoặc Noise point
2. Loại bỏ các Noise point
3. Đặt một đường nối giữa các Core point nào nằm trong khoảng Eps của nhau
4. Tạo nhóm các Core point đã kết nối thành các nhóm riêng biệt
5. Cho mỗi Border point vào một trong các nhóm của các Core point kết hợp của nó
Độ phức tạp về không gian và thời gian
Độ phức tạp cơ bản về thời gian của thuật toán DBSCAN là O(m * thời gian tìm các điểm trong Eps-lân cận), trong đó m là số điểm. Trong trường hợp tệ nhất, độ phức tạp này là O(m2). Tuy nhiên trong các không gian có số chiều thấp, dữ liệu có cấu trúc, như là kd-tree, nó cho phép khôi phục có hiệu quả tất cả các điểm bên trong một khoảng cho trước xung quanh một điểm, và độ phức tạp về thời gian có thể thấp cỡ O(mlogm).
Yêu cầu không gian cho DBSCAN, thậm chí với dữ liệu có số chiều lớn, là
O(m) bởi vì nó chỉ cần giữ một lượng nhỏ dữ liệu cho mỗi điểm, đó là nhãn nhóm và sự xác định mỗi điểm là Core point, Border point hay Noise point
Lựa chọn tham số cho DBSCAN
Tất nhiên còn một vấn đề đặt ra là làm thế nào để xác định các tham số Eps
và MinPts. Cách tiếp cận cơ bản là xem xét hành vi của khoảng cách từ một điểm đến điểm gần nó nhất thứ k mà ta gọi là k-dist. Với các điểm thuộc về một nhóm, giá trị của k-dist sẽ là nhỏ nếu k không lớn hơn kích cỡ nhóm. Chú ý rằng sẽ có vài thay đổi, phụ thuộc vào mật độ của nhóm và sự phân bố ngẫu nhiên của các điểm. Nhưng nếu tính trên trung bình thì miền thay đổi là không lớn nếu mật độ nhóm không khác nhau cơ bản. Tuy nhiên, với các điểm không nằm trong một nhóm nào, như các Noise point thì k-dist sẽ có thay đổi lớn. Do đó, nếu ta tính k-dist cho tất cả các điểm dữ liệu với k nào đó, rồi sắp xếp lên đồ thị, thì ta hy vọng sẽ thấy được sự thay đổi rõ ràng tại một giá trị k-dist ứng với giá trị thích hợp của Eps. Nếu ta chọn khoảng cách này làm Eps và lấy giá trị của k làm MinPts thì các điểm có k-dist nhỏ hơn Eps sẽ được gắn nhãn là Core point, trong khi các điểm còn lại sẽ được gắn nhãn là Noise point hoặc Border point.
Hình 8.22 trình bày một tập dữ liệu mẫu, còn đồ thị k-dist của dữ liệu được cho trong hình 8.23.
Giá trị của Eps được tính theo cách này phụ thuộc vào k, nhưng không thay đổi đột ngột khi k thay đổi. Nếu giá trị của k là quá nhỏ thì một lượng nhỏ các điểm nhiễu, hoặc điểm nằm ngoài mà ở gần nhau, sẽ bị gắn nhãn lầm là một nhóm. Nếu giá trị k quá lớn thì các nhóm nhỏ (cỡ nhóm nhỏ hơn k) hầu như sẽ bị gắn nhãn lầm là các điểm nhiễu. Thuật toán DBSCAN nguyên thủy sử dụng giá trị
k=4. Đây là giá trị hợp lý cho hầu hết các tập dữ liệu hai chiều.
Mật độ nhóm thay đổi
DBSCAN có thể gặp trở ngại khi mật mật độ của các nhóm thay đổi trong vùng rộng. Xét hình 8.24, hình này bốn nhóm gắn liền với vùng nhiễu. Mật độ của nhóm và vùng nhiễu được xác định bằng độ tối của chúng. Vùng nhiễu xung quanh cặp nhóm dày đặt hơn (nhóm A và B) có cùng mật độ với các nhóm C và D. Nếu ngưỡng Eps đủ cao để cho DBSCAN tìm C và D như là các nhóm thì khi đó A, B và các điểm nhiễu chung quanh nó sẽ trở thành một nhóm duy nhất. Nếu ngưỡng Eps đủ thấp để cho DBSCAN tìm A và B như là các nhóm riêng biệt còn
các điểm chung quanh nó là vùng nhiễu thì C, D và vùng xung quanh chúng lại được đánh dấu là nhiễu.
Ví dụ
Để minh họa cho việc sử dụng DBSCAN, ta sẽ trình bày các nhóm mà Db tìm được trong tập dữ liệu hai chiều ở hình 8.22. Tập dữ liệu này gồm 3000 điểm hai chiều. Ngưỡng Eps cho dữ liệu này có được bằng cách chấm các khoảng cách (đã được sắp xếp) từ một điểm tới điểm thứ tư gần nó nhất (k = 4), và xác định giá trị mà tại đó có sự tăng lên nhanh chóng. Ta chọn Eps=10. Các nhóm tìm được của DBSCAN sử dụng các tham số này (nghĩa là MinPts = 4 và Eps = 10) được trình bày ở hình 8.25(a). Các Core point, Border point và Noise point được biễu diễn ở hình 8.25(b)
2.3.3 ƯU ĐIỂM VAØ NHƯỢC ĐIỂM
Vì DBSCAN sử dụng các khái niệm dựa trên cơ sở mật độ của nhóm, nó loại trừ các điểm nhiễu nên có thể vận dụng để gom nhóm cho các hình dạng bất kỳ và kích cỡ tùy ý. DBSCAN có thể tìm được nhiều nhóm mà K-means không thể tìm ra như trong hình 8.22. Tuy nhiên, như đã trình bày ở trên, DBSCAN gặp trở ngại khi các nhóm có độ biến thiên mật độ lớn. Nó cũng gặp trở ngại với dữ liệu có số chiều lớn, bởi vì mật độ sẽ khó định nghĩa hơn cho những dữ liệu như vậy. Cuối cùng DBSCAN có thể tốn kém khi việc tính toán các lân cận gần nhất yêu cầu tính tất cả các cặp điểm gần nhau, như thông thường trong trường hợp dữ liệu nhiều chiều.
PHẦN 3