基於密度的聚類算法(四)——DBSCAN

一  什麼是基於密度的聚類算法

由於層次聚類算法和劃分式聚類算往往只能發現凸形的聚類簇。爲了彌補這一缺陷,發現各種任意形狀的聚類簇,開發出基於密度的聚類算法。這類算法認爲,在整個樣本空間點中,各目標類簇是由一羣的稠密樣本點組成的,而這些稠密樣本點被低密度區域(噪聲)分割,而算法的目的就是要過濾低密度區域,發現稠密樣本點。

二  DBSCANDensity-based Spatial Clustering of Applications with Noise

是一種基於高密度聯通區域的聚類算法,它將類簇定義爲高密度相連點的最大集合。它本身對噪聲不敏感,並且能發現任意形狀的類簇。

DBSCAN中的的幾個定義:

Ε領域:給定對象半徑爲Ε內的區域稱爲該對象的Ε領域

核心對象:如果給定對象Ε領域內的樣本點數大於等於MinPts,則稱該對象爲核心對象

直接密度可達:對於樣本集合D,如果樣本點qpΕ領域內,並且p爲核心對象,那麼對象q從對象p直接密度可達

密度可達:對於樣本集合D,給定一串樣本點p1,p2….pnp= p1,q= pn,假如對象pipi-1直接密度可達,那麼對象q從對象p密度可達

密度相連:對於樣本集合D中的任意一點O,如果存在對象p到對象o密度可達,並且對象q到對象o密度可達,那麼對象q到對象p密度相連

可以發現,密度可達是直接密度可達的傳遞閉包,並且這種關係是非對稱的。密度相連是對稱關係。DBSCAN目的是找到密度相連對象的最大集合。

Eg: 假設半徑Ε=3MinPts=3,點pE領域中有點{m,p,p1,p2,o}, mE領域中有點{m,q,p,m1,m2},qE領域中有點{q,m},oE領域中有點{o,p,s},sE領域中有點{o,s,s1}.

那麼核心對象有p,m,o,s(q不是核心對象,因爲它對應的E領域中點數量等於2,小於MinPts=3)

m從點p直接密度可達,因爲mpE領域內,並且p爲核心對象;

q從點p密度可達,因爲點q從點m直接密度可達,並且點m從點p直接密度可達;

q到點s密度相連,因爲點q從點p密度可達,並且s從點p密度可達。

三  算法描述

算法:DBSCAN

輸入:E — 半徑

      MinPts — 給定點在E領域內成爲核心對象的最小領域點數

      D — 集合

輸出:目標類簇集合

方法:repeat

1)       判斷輸入點是否爲核心對象

2)       找出核心對象的E領域中的所有直接密度可達點

      util 所有輸入點都判斷完畢

      repeat

         針對所有核心對象的E領域所有直接密度可達點找到最大密度相連對象集合,

         中間涉及到一些密度可達對象的合併。

      Util 所有核心對象的E領域都遍歷完畢



算法:DBSCAN

輸入:E  半徑

      MinPts  給定點在E領域內成爲核心對象的最小領域點數

      D  集合

輸出:目標類簇集合

方法:repeat

1)       判斷輸入點是否爲核心對象

2)       找出核心對象的E領域中的所有直接密度可達點

      util 所有輸入點都判斷完畢

      repeat

         針對所有核心對象的E領域所有直接密度可達點找到最大密度相連對象集合,

         中間涉及到一些密度可達對象的合併。

      Util 所有核心對象的E領域都遍歷完畢

轉自:http://www.360doc.com/content/11/0608/14/7000788_122449612.shtml

發佈了0 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章