聚類演算法——DBSCAN演算法原理及公式

Lily發表於2020-05-20

聚類的定義

聚類就是對大量未知標註的資料集,按資料的內在相似性將資料集劃分為多個類別,使類別內的資料相似度較大而類別間的資料相似度較小。聚類演算法是無監督的演算法。
常見的相似度計算方法
閔可夫斯基距離Minkowski/歐式距離

在上述的計算中,當p=1時,則是計算絕對值距離,通常叫做曼哈頓距離,當p=2時,表述的是歐式距離。

傑卡德相似係數(Jaccard)

傑卡德相關係數主要用於描述集合之間的相似度,在目標檢測中,iou的計算就和此公式相類似

餘弦相似度

 餘弦相似度通過夾角的餘弦來描述相似性

Pearson相似係數

相對熵(K-L距離)

相對熵的相似度是不對稱的相似度,D(p||q)不一定等於D(q||p)。

聚類的基本思想

給定一個有N個物件的資料集,劃分聚類的技術將構造資料的K個劃分,每個劃分代表一個簇,K<=n。也就是說,聚類將資料劃分為k個簇,而且這k個劃分滿足下列條件:

每個簇至少包含一個物件,每一個物件屬於且僅屬於一個簇。

具體的步驟為,對於給定的k,演算法首先給出一個初始的劃分方法。以後通過反覆迭代的方法改變劃分,使得每一次改進之後的劃分方案都較前一次更好。

密度聚類

密度聚類方法的指導思想是,只要一個區域中的點的密度大於某個閾值,就把它加到與之相近的聚類中去。這類演算法能夠克服基於距離的演算法只能發現“類圓形”的聚類的缺點,可以發現任意形狀的聚類,且對噪聲資料不敏感。但計算密度單元的計算複雜度大,需要建立空間索引來降低計算量。

DBSCAN演算法

DBSCAN是一個比較有代表性的基於密度聚類的聚類演算法,它對簇的定義為密度相連的點的最大集合,能夠把具有足夠高密度的區域劃分為簇,並可在有噪聲的資料中發現任意形狀的聚類。

DBSCAN相關定義

物件的ε-鄰域:給定物件在半徑ε內的區域。

核心物件:對於給定的資料m,如果一個物件的ε-鄰域至少包含有m個物件,則成為該物件的核心物件。

直接密度可達:給定一個物件集合D,如果p是在q的ε-鄰域內,而q是一個核心物件,則物件p從物件q出發是直接密度可達的。

密度可達:如果存在一個物件鏈p1p2···pn,p1=q,pn=p,對pi屬於D,pi+1是從pi關於ε和m直接密度可達的,則物件p是從物件q關於ε和m密度可達的。

密度相連:如果物件集合D中存在一個物件o,使得物件p和q是從o關於ε和m密度可達的,那麼物件p和q是關於ε和m密度相連的。

簇:一個基於密度的簇是最大的密度相連物件的集合。

噪聲:不包含在任何簇中的物件稱為噪聲。

DBSCAN通過檢查資料集中的每個物件的ε-鄰域來尋找聚類,如果一個點p的ε-鄰域包含對於m個物件,則建立一個p作為核心物件的新簇。然後,DBSCAN反覆地尋找這些核心物件直接密度可達的物件,這個過程可能涉及密度可達簇的合併。當沒有新的點可以被新增到任何簇時,該過程結束。演算法的中ε和m是根據先驗知識來給出的。

 

 

相關文章