Thuật toán HDBSCAN được phát triển bởi Campello, Moulavi, và Sander [13]. Đây là phiên bản mở rộng của thuật toán DBSCAN bằng cách chuyển nó thành thuật toán phân cụm dạng phân cấp, rồi sử dụng một kĩ thuật để bóc tách lấy một cụm dữ liệu dựa trên tính ổn định của cụm.
Thuật toán phân cụm thứ cấp thường được sử dụng như các thuật toán khai phá dữ liệu, được chia về 2 loại: kết tụ và phân chia. Với kiểu đầu tiên, mở đầu mỗi điểm dữ liệu được coi là một cụm đơn lẻ, hai cụm gần nhất sẽ được gộp qua mỗi bước lặp cho tới khi tất cả các điểm dữ liệu thuộc về cùng một cụm dữ liệu. Với cách tiếp cận phân chia sẽ thực hiện từ trên xuống bằng cách thực hiện phân chia đệ quy. Một ví dụ điển hình của cách tiếp cận kết tụ đó là phân cụm thứ cấp single-linkage bằng cách thực hiện gồm 2 cụm gần nhau nhất thành một.
Thuật toán phân cụm sẽ được chia nhỏ thành các bước như sau:
● Biến đổi không gian theo mật độ/độ thưa.
● Xây dựng cây bao trùm nhỏ nhất của đồ thị có trọng số là khoảng cách.
● Xây dựng các cụm phân cấp của các thành phần liên thông.
● Cô đặc lại thứ cấp của cụm dựa trên kích cỡ cụm tối thiểu.
● Trích chọn các cụm ổn định trong cây cô đặc.
Sau đây, tôi sẽ trình bày chi tiết từng bước theo thứ tự như trên. ● Biến đổi không gian
Để tìm những cụm dữ liệu giữa các điểm dữ liệu nhiễu và dị thường, ta phải tìm những khu vực có mật độ cao. Với thuật toán phân cụm single linkage, nó có thể rất nhạy cảm với nhiễu. Một điểm dữ liệu bị nhiễu nó có thể tồn tại như là một cầu nối giữa 2 cụm dữ liệu phân tách. Chính vì vậy, để thuật toán chạy hiệu quả hơn, ta phải tìm cách làm cho các điểm như vậy trở lên khác biệt hơn so với các điểm cùng một cụm. Thực tế thì ta làm cho chúng có khoảng cách xa hơn so với các điểm trong cùng 1 cụm.
Về trực quan là vậy, tuy nhiên làm thế nào để có thể thực hiện được điều đó là vấn đề. Ta cần tìm một cách thức xấp xỉ mật độ một cách dễ dàng, và cách đơn giản nhất là khoảng cách tới k láng giềng gần nhất. Nếu ta xác định được ma trận khoảng cách của các điểm dữ liệu thì mọi thứ trở nên dễ dàng. Ta định nghĩa khoảng cách trung tâm (core distance) của tham số k này cho một điểm x và kí
17 hiệu là 𝑐𝑜𝑟𝑒𝑘(𝑥). Ta cần tìm cách lan rộng ra xa những điểm có mật độ thấp (theo đó là tăng core distance). Do đó, ta định nghĩa một độ đo khoảng cách mới là khoảng cách tiếp cận lẫn nhau (mutual reachability distance) với công thức như sau:
Hình 2.5.Khoảng cách trung tâm của một điểm
Với 𝑑𝑚𝑟𝑒𝑎𝑐ℎ−𝑘(𝑎, 𝑏) là khoảng cách độ đo góc giữa a và b. Dưới độ đo này,
những điểm mật độ dày (với core distance thấp) giữ nguyên khoảng cách với nhau nhưng những điểm thưa hơn bị đẩy ra xa ít nhất một khoảng là core distance của chúng từ các điểm khác. Bằng cách này ta khiến các điểm nhiễu và không thuộc cụm trở lên rõ ràng hơn. Có thể nhìn ra ở đây là sự lựa chọn giá trị của k, k càng lớn có thể khiến nhiều điểm trở lên ra xa hơn.
● Xây dựng cây bao trùm nhỏ nhất (minimum spanning tree)
Sau khi ta có độ đo tiếp cận lẫn nhau trên dữ liệu, ta bắt đầu đi tìm các cụm dữ liệu trên các dữ liệu có mật độ dày. Tất nhiên là những khu vực có mật độ dày thường liên quan lẫn nhau, và những cụm khác nhau có mật độ khác nhau. Giờ ta coi dữ liệu như một đồ thị có trọng số với những điểm dữ liệu là các đỉnh và cạnh giữa 2 điểm bất kì có trọng số là khoảng cách tiếp cận lẫn nhau giữa chúng.
Giờ ta lựa chọn 1 ngưỡng nào đó, ban đầu thì cao, rồi hạ thấp dần xuống. Bỏ đi những cạnh mà có trọng số lớn hơn ngưỡng đó, dần dần đồ thị tách rời thành
18 các thành phần liên thông. Sau cùng ta sẽ có phân cấp của các thành phần liên thông ở nhiều cấp độ khác nhau.
Trên thực tế việc tính toán này rất tốn kém, bởi có tận cạnh và ta không muốn chạy thuật toán các thành phần liên thông nhiều lần. Cách tốt nhất là tìm một tập cạnh nhỏ nhất mà bỏ đi cạnh nào cũng gây ra sự mất kết nối ở các thành phần. Và thế nên, ý tưởng đó dẫn tới cây bao trùm nhỏ nhất.
Hình 2.6.Cây bao trùm nhỏ nhất được xây dựng bằng cách sử dụng khoảng cách tiếp cận lẫn nhau
Ta có thể xây dựng cây bao trùm nhỏ nhất vô cùng hiệu quả nhờ thuật toán Prim. Đó là xây dựng cây từ từng cạnh một, thêm những cạnh có trọng số nhỏ nhất mà kết nối cây hiện tại với đỉnh mà chưa từng xuất hiện ở cây. Hình 2.6 mô tả cách mà cây HDBSCAN được xây dựng, lưu ý rằng khoảng cách tiếp cận lẫn nhau khác với khái niệm khoảng cách ở cây.
● Xây dựng cụm phân cấp
Với cây bao trùm nhỏ nhất ở trên, bước tiếp theo là chuyển đổi nó thành các thành phần liên thông dạng thứ cấp. Ta có thể dễ dàng sắp xếp lại các đỉnh theo khoảng cách, rồi duyệt qua để gộp các điểm lại thành một cụm mới. Cái khó ở đây là xác định ở hai cụm những cạnh nào sẽ gộp lại với nhau, tuy nhiên ta có thể dễ dàng làm được điều đó nếu sử dụng cấu trúc dữ liệu union-find. Kết quả của việc gộp trông như ở hình 2.7.
19
Hình 2.7.Xây dựng cây phân cụm thứ cấp
Từ đây, ta muốn tìm được tập hợp các cụm dữ liệu dạng phẳng bằng cách vẽ một đường ngang qua biểu đồ ở trên rồi lựa chọn các cụm theo nhát cắt đó. Nhưng vấn đề ở đây là ta sẽ cắt cây ở đâu? Bởi vì mỗi cụm có mật độ khác nhau, vì thế lựa chọn nơi cắt sẽ là lựa chọn ngưỡng khoảng cách tiếp cận lẫn nhau. Lý tưởng nhất là cắt ở những vị trí khác nhau để lựa chọn số lượng cụm dữ liệu mong muốn.
● Cô đọng cây thứ cấp
Ở bước này ta sẽ biến đổi cái cây lớn và phức tạp, lắm phân cấp về một cây đơn giản hơn. Như ta thấy thì một cụm trên cây thường chỉ tách ra làm một hoặc hai điểm dữ liệu, đó là chìa khóa của vấn đề, thay vì nghĩ rằng một cụm bị tách ra làm hai, ta có thể nghĩ là cụm đó bị mất đi điểm dữ liệu. Cụ thể hơn thì ta có một tham số cho HDBSCAN đó là kích cỡ cụm tối thiểu. Rồi ta duyệt qua cây để tìm điểm mà nơi cụm tách ra khiến cho cụm tổng ít điểm dữ liệu hơn ngưỡng đó, ta gọi nó là “những điểm rơi ra khỏi một cụm” và để cho cụm đó vẫn nằm trong cụm tổng. Còn nếu tách cụm mà vẫn lớn hơn kích cỡ cụm tối thiểu thì ta để chúng tiếp tục phân tách. Sau khi ta duyệt xong cây và có được cây phân cấp đơn giản hơn, ta có được như hình 2.8.
20
Hình 2.8.Cô đọng cây phân cấp
● Trích chọn lấy cụm
Khi trích lấy cụm, ta chọn cụm có tồn tại lâu dài, những cụm mà tồn tại ngắn chỉ là sản phẩm tạm thời trong quá trình thuật toán chạy. Nhìn vào hình 2.9, ta sẽ lựa chọn các cụm to và rõ ràng. Và khi ta làm phẳng một cụm thì với một cụm đã chọn thì ta không được chọn cụm nào là con của nó.
21 Đầu tiên, ta cần một độ đo khác giá trị khoảng cách để xem xét sự ổn định của cụm, ta sử dụng 𝜆 = 1
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒. Với cụm đã cho, ta định nghĩa giá trị 𝜆𝑏𝑖𝑟𝑡ℎ và
𝜆𝑑𝑒𝑎𝑡ℎ là giá trị lambda khi cụm phân chia và trở thành cụm của chính nó. Với mỗi
điểm p thuộc cụm, ta có thể định nghĩa giá trị 𝜆𝑝 như giá trị lambda mà điểm “rơi ra khỏi cụm” có giá trị đâu đó nằm giữa và vì một điểm hoặc là rơi ra khỏi cụm trong một thời điểm nào đó trong vòng đời của cụm, hoặc là rời khỏi cụm khi cây bị phân chia. Cho mỗi cụm, ta tính giá trị ổn định như sau
.
Coi tất cả các đỉnh lá là cụm được chọn. Thực hiện tính toán cho toàn bộ cây theo thứ tự cấu trúc liên kết ngược. Nếu tổng giá trị ổn định của các cụm con lớn hơn giá trị ổn định của cụm tổng, thì ta đặt giá trị ổn định của cụm tổng thành tổng các giá trị ổn định của cụm con. Mặc khác, nếu giá trị ổn định của cụm tổng lớn hơn tổng các giá trị ổn định của các cụm con thì ta coi cụm đó là cụm được chọn và không lựa chọn tất cả các hậu duệ của nó. Khi ta tính tới đỉnh, ta gọi tập cụm được chọn là các cụm phẳng rồi trả về kết quả.