階層式密度分群演算法 是什麼?
Hierarchical DBSCAN:階層式密度分群演算法 的完整解釋
階層式密度分群演算法(Hierarchical DBSCAN, HDBSCAN)是 DBSCAN 的進化版本,透過建立多密度尺度的階層式叢集樹,能自動適應密度不均勻的資料,無需設定全局鄰域半徑 ε,並
核心概念
HDBSCAN 的根本改進在於將 DBSCAN 的「單一密度閾值」轉變為「多尺度密度層次」。DBSCAN 使用全局固定的 ε,當資料中不同群組的密度差異大時,單一 ε 無法同時適應所有群組。HDBSCAN 透過建立密度的連續層次,讓演算法自行找到在各自密度尺度下最穩定的叢集。
運作原理
步驟一:計算核心距離
對每個資料點 x,其核心距離 core_k(x) 定義為到第 k 個最近鄰的距離。k 為唯一需要設定的主要超參數(即 min_cluster_size 或 min_samples)。核心距離衡量每個點所在位置的局部密度:密集區域中的點核心距離小,稀疏區域中的點核心距離大。
步驟二:計算互達距離
兩點 a, b 之間的互達距離定義為:
mreach_k(a, b) = max(core_k(a), core_k(b), dist(a, b))
引入互達距離使稀疏點之間的距離被「放大」,確保稀疏區域中的點不會偶然被判定為密集群組的一部分。
步驟三:建立最小生成樹(MST)
以互達距離為邊權,在所有資料點上建立最小生成樹,捕捉資料在全局密度結構下的連通關係。
步驟四:轉換為叢集層次樹
依序移除 MST 中距離最長的邊,等同於從低密度到高密度逐漸加緊條件,得到一個叢集不斷分裂的層次樹(類似系統發育樹)。
步驟五:計算叢集穩定性
對層次樹中的每個叢集節點,計算其「穩定性(Stability)」:叢集在多大的密度範圍內保持不分裂。穩定性高的叢集代表其在多個密度尺度下都能穩定存在,是真實的自然群組。
步驟六:提取最終叢集
從層次樹葉端往根端,選擇穩定性之和最大的非重疊葉節點作為最終分群結果。不屬於任何最終叢集的點被標記為雜訊(Noise)。
軟分群(Soft Clustering)
HDBSCAN 能為每個資料點輸出屬於每個叢集的概率分數,而非強制歸類。位於叢集核心的點概率接近 1,位於叢集邊緣的點概率較低,雜訊點所有叢集的概率均低。
實際應用
自然語言嵌入的主題發現
將大量文件轉為嵌入向量(Embedding)後,HDBSCAN 能在語意空間中自動發現主題群組,且不需要預先指定主題數(相較於 LDA 等需要設定 K 的方法)。BERTopic 即以 HDBSCAN 作為核心分群元件。
生物資訊學
單細胞 RNA 定序(scRNA-seq)資料常具有高度非均勻密度:不同細胞類型的數量差異極大。HDBSCAN 能在此類資料中穩健地識別細胞亞型,並輸出邊界細胞的不確定性(Soft Clustering 分數)。
客戶分群
電商和金融機構的客戶資料常呈現高密度核心用戶和長尾稀疏用戶共存的模式,HDBSCAN 能自然地識別主要客戶群組(高密度叢集)並標記出不屬於任何主流群體的個別客戶(雜訊點)。
地理空間分析
城市中的人口密度從市中心到郊區呈現連續的梯度變化,HDBSCAN 能識別出市中心商業區(高密度叢集)、居住區(中密度叢集)以及散落的郊區(雜訊點),而無需為不同密度的地區設定不同的 ε。
常見誤區
誤區一:HDBSCAN 完全不需要超參數
HDBSCAN 仍需設定 min_cluster_size(決定多少個點才能構成一個叢集)和 min_samples(決定核心距離計算的鄰域大小,預設等於 min_cluster_size)。相較於 DBSCAN 需要同時調整 ε 和 minPts,HDBSCAN 的超參數更少、更直觀,但並非完全無參。
誤區二:HDBSCAN 通常優於 DBSCAN
當資料密度確實均勻且 ε 容易確定時,DBSCAN 的計算效率更高。HDBSCAN 的優勢在密度不均勻的複雜資料中才最為明顯。對小規模且分布簡單的資料,DBSCAN 可能是更輕量的選擇。
誤區三:所有高維資料都適合 HDBSCAN
和 DBSCAN 一樣,HDBSCAN 在高維空間(特徵數 > 20–30)的效能也會因維度詛咒而下降,距離度量的區分力降低。在高維場景下,MUST 先進行降維(UMAP 是目前與 HDBSCAN 搭配最佳的降維方法之一),再進行分群。
與相關技術的比較
| 演算法 | ε 設定 | 密度不均勻 | 軟分群 | 時間複雜度 | 最佳搭配 |
|---|---|---|---|---|---|
| DBSCAN | 需要全局 ε | 差 | 否 | O(n log n) | 密度均勻、含雜訊 |
| HDBSCAN | 不需要 ε | 好 | 是 | O(n log n) | 密度不均、複雜結構 |
| K-Means | 不需要 | 差(假設球形) | 否 | O(n×k×iter) | 形狀規則、已知 K |
| GMM | 不需要 | 中 | 是(機率) | O(n×k×iter) | 橢圓形群組、機率需求 |