核心點(DBSCAN) 是什麼?
Core Point:核心點(DBSCAN) 的完整解釋
在 DBSCAN 聚類演算法中,鄰域半徑 ε 內至少有 MinPts 個鄰居的資料點,是聚類簇的核心組成元素。
DBSCAN 是一種以密度為基礎的聚類演算法,由 Ester、Kriegel、Sander 和 Xu 於 1996 年提出。與 K-Means 等質心型聚類不同,DBSCAN 不需要預先指定聚類數量,且能識別任意形狀的聚類,並自動將低密度區域的點標記為雜訊(Noise / Outlier)。核心點的概念是這一切能力的基礎。
DBSCAN 的三類資料點
DBSCAN 根據兩個超參數,鄰域半徑 ε(epsilon)和最小點數 MinPts,將所有資料點分為三類:
核心點(Core Point):在以該點為圓心、半徑為 ε 的球形鄰域(或圓形,取決於維度)內,包括該點本身在內,至少有 MinPts 個資料點。核心點位於高密度區域,是聚類簇的「骨幹」。
邊界點(Border Point):不是核心點(鄰域內點數 < MinPts),但至少在一個核心點的 ε 鄰域內。邊界點附屬於某個聚類簇,但本身不足以成為聚類的核心。
雜訊點(Noise Point / Outlier):既不是核心點,也不在任何核心點的 ε 鄰域內的資料點。DBSCAN 不將雜訊點納入任何聚類,這使得它天然具備離群值偵測的能力。
密度可達與密度連接
核心點還涉及兩個重要概念:
- 密度可達(Density Reachable):從核心點 p 可以經過一連串核心點的鄰域關係「走到」點 q,則稱 q 從 p 密度可達。
- 密度連接(Density Connected):若兩個點 p 和 q 都從同一個點 o 密度可達,則 p 和 q 是密度連接的。密度連接是 DBSCAN 聚類定義的基礎:同一個簇中的所有點彼此密度連接。
DBSCAN 演算法流程
- 對每個尚未訪問的資料點,計算其 ε 鄰域內的點數量。
- 若數量 ≥ MinPts,標記為核心點,以此核心點為種子,將其所有鄰域點(包括其他核心點的鄰域)擴展到同一個聚類簇。
- 若數量 < MinPts,暫時標記為可能的雜訊點(後續可能被某個核心點納入簇中成為邊界點)。
- 重複直到所有點都被訪問,剩餘未分配簇的點為雜訊點。
超參數選擇
- ε 的選擇:常見方法是繪製 k-距離圖(k-distance plot),以 MinPts 為 k,計算每個點到第 k 個最近鄰的距離,並排序繪製曲線,「肘點」處通常是適合的 ε 值。
- MinPts 的選擇:通常設為資料維度的 2 倍(MinPts ≥ D+1,D 為維度),或根據領域知識設定。MinPts 越大,雜訊的判定越嚴格,聚類越穩健但可能找到更少的簇。
DBSCAN 的優缺點
優點:不需要預先指定聚類數量;能發現任意形狀的聚類(如 C 形、環形);自動處理離群值;對球形假設不敏感。
缺點:對 ε 和 MinPts 的設定較敏感;處理密度差異很大的資料集效果不佳(HDBSCAN 可改善此點);在高維空間中,由於維度詛咒,距離度量失去意義,效果下降。
實際應用
- 地理空間聚類:識別城市中的商業聚集區、交通事故熱點。
- 異常偵測:工業感測器資料中的設備異常、網路安全中的異常流量偵測。
- 影像分割:基於像素密度的影像區域分割。
- 生物資訊學:基因表達資料的聚類分析。
HDBSCAN:DBSCAN 的進階版本
DBSCAN 的主要弱點之一是對全局單一 ε 值的依賴,當資料集中不同區域的局部密度差異很大時,單一 ε 難以同時捕捉稀疏和稠密的聚類。HDBSCAN(Hierarchical DBSCAN)透過建立一個密度層次樹,能夠自動適應不同局部密度,找到在不同密度尺度下都穩健的聚類,無需手動設定 ε,只需指定 MinPts(最小聚類大小)。在 Python 中可直接使用 hdbscan 套件,是目前處理複雜真實資料聚類的推薦選擇之一,尤其適合高維且密度不均的場景。