1. 程式人生 > >基於密度的新概念——SNN密度

基於密度的新概念——SNN密度

基於密度的新概念——SNN密度

第三十五次寫部落格,本人數學基礎不是太好,如果有幸能得到讀者指正,感激不盡,希望能借此機會向大家學習。本文作為基於圖的聚類的第三部分,主要針對“SNN密度(Shared Nearest Neighbour Density)”以及一種使用該密度的“類DBSCAN聚類”演算法進行介紹。其他基於圖的聚類演算法的連結可以在這篇綜述《基於圖的聚類演算法綜述(基於圖的聚類演算法開篇)》的結尾找到。

SNN密度

  在高維樣本空間中,傳統的歐幾里得密度度量沒有意義,以至於基於網格的聚類、基於密度的聚類,還是基於核密度估計的密度聚類都無法在這種情況下進行應用,雖然藉助於類似Jaccard或餘弦相似度等度量方法可以在高維空間下獲得良好的效果,不過仍有一些問題。SNN密度關注於資料集中樣本點的區域性結構,因此對簇之間密度的變化和空間的維度都不敏感,因此這種度量方法適合應用於高維樣本空間中,他與DBSCAN中密度的定義類似,不過與DBSCAN中使用傳統歐氏距離不同的是,它採用上一篇文章中介紹的“SNN相似度”,因此下面依照DBSCAN中所介紹的密度,對SNN密度進行重新定義。
  1) 核心點:如果在某點給定鄰域範圍(由 E

p s Eps 指定)中的樣本點數超過某個閾值 M i n P t s
MinPts
,則該點稱為“核心點”;
  2) 邊界點:如果某點雖然不是核心點,但是它位於核心點所在鄰域內,那麼該點稱為“邊界點”;
  3) 噪聲點:既不是核心點,又不是邊界點的樣本點被稱為“噪聲點”。
  與SNN相似度類似,SNN密度在資料集的高密度區和低密度區的值比較高,而在這兩塊區域之間的過渡區域的值比較低,因此這種密度度量方法對簇之間密度的變化是“不敏感的”。如下圖所示,a中的所有點按照SNN密度的高、中、低被分為了三部分,可以看出高SNN密度區中的大部分點都是核心點,而低SNN密度區中的大部分點是離群點。

圖1 SNN密度

一種基於SNN密度的“類DBSCAN”聚類演算法

  基於上述SNN密度的定義,我們可以構造出一種使用該相似度度量的DBSCAN聚類,他與之前介紹的Jarvis-Patrick演算法一樣,都是從構建SNN相似度圖開始,然後在該圖上運用聚類演算法,演算法步驟如下所示,

圖2 SNN密度聚類演算法

這種演算法克服了Jarvis-Patrick演算法和DBSCAN演算法的缺點,不像DBSCAN只能用於低維樣本空間,他在高維情況下同樣適用,也不像Jarvis-Patrick演算法簡單的利用閾值來稀疏化SNN相似度圖,他使用基於SNN密度和核心點概念的方法。同樣,由於使用SNN相似度圖,該演算法的侷限性與JP演算法類似,即該演算法最終得到的簇可能僅僅取決於一條邊,因此他可能分裂真正的簇或者合併本應該分裂的簇,雖然SNN密度和核心點的使用會減少這方面的影響。