DBSCAN 算法

1辰如、DBSCAN 算法由來

基于距離的聚類算法的聚類結(jié)果是球狀的簇,當數(shù)據(jù)集中的聚類結(jié)果是非球狀結(jié)構(gòu)時贵试,基于距離的聚類算法的聚類效果并不好琉兜。

image

與基于距離的聚類算法不同的是,基于密度的聚類算法可以發(fā)現(xiàn)任意形狀的聚類毙玻。在基于密度的聚類算法中豌蟋,通過在數(shù)據(jù)集中尋找被低密度區(qū)域分離的高密度區(qū)域,將分離出的高密度區(qū)域作為一個獨立的類別桑滩。

2夺饲、DBSCAN 算法原理

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪聲的基于密度的聚類方法)是一種基于密度的空間聚類算法施符。該算法將具有足夠密度的區(qū)域劃分為簇往声,并在具有噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的簇,它將簇定義為密度相連的點的最大集合戳吝。

數(shù)據(jù)點的分類.png

密度相關(guān)定義.png

圖示.png

3浩销、算法步驟

  • 首選任意選取一個點,然后找到到這個點距離小于等于 eps 的所有的點听哭。如果距起始點的距離在 eps 之內(nèi)的數(shù)據(jù)點個數(shù)小于 min_samples慢洋,那么這個點被標記為噪聲。如果距離在 eps 之內(nèi)的數(shù)據(jù)點個數(shù)大于 min_samples陆盘,則這個點被標記為核心樣本普筹,并被分配一個新的簇標簽。
  • 然后訪問該點的所有鄰居(在距離 eps 以內(nèi))隘马。如果它們還沒有被分配一個簇太防,那么就將剛剛創(chuàng)建的新的簇標簽分配給它們。如果它們是核心樣本酸员,那么就依次訪問其鄰居蜒车,以此類推。簇逐漸增大幔嗦,直到在簇的 eps 距離內(nèi)沒有更多的核心樣本為止酿愧。
  • 選取另一個尚未被訪問過的點,并重復(fù)相同的過程邀泉。
在這幅圖里嬉挡,minPts = 4,點 A 和其他紅色點是核心點汇恤,因為它們的 ε-鄰域(圖中紅色圓圈)里包含最少 4 個點(包括自己)庞钢,由于它們之間相互相可達,它們形成了一個聚類屁置。點 B 和點 C 不是核心點焊夸,但它們可由 A 經(jīng)其他核心點可達,所以也屬于同一個聚類蓝角。點 N 是局外點阱穗,它既不是核心點,又不由其他點可達.png

4使鹅、DBSCAN 的參數(shù)選擇

  • eps 設(shè)置得非常小揪阶,則意味著沒有點是核心樣本,可能會導(dǎo)致所有點被標記為噪聲
  • eps 設(shè)置得非常大患朱,可能會導(dǎo)致所有點形成單個簇鲁僚。
  • 雖然不需要顯示設(shè)置簇的個數(shù),但設(shè)置 eps 可以隱式地控制找到 eps 的個數(shù)。
  • 使用 StandarScaler 或 MinMaxScaler 對數(shù)據(jù)進行縮放冰沙,有時更容易找到 eps 的較好取值侨艾。因為使用縮放技術(shù)將確保所有特征具有相似的范圍。
屬于簇的點是實心拓挥,噪聲點則顯示為空心唠梨,核心樣本點顯示為較大的標記,而邊界點則顯示為較小的標記.png
from sklearn.cluster import DBSCAN
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
import mglearn

X,y=make_blobs(random_state=0,n_samples=12)
dbscan=DBSCAN()
clusters=dbscan.fit_predict(X)
# 都被標記為噪聲
print('Cluster memberships:\n{}'.format(clusters))
mglearn.plots.plot_dbscan()

plt.show()

5侥啤、Scikit-learn中的DBSCAN的使用

def __init__(self, eps=0.5, min_samples=5, metric='euclidean',
                 metric_params=None, algorithm='auto', leaf_size=30, p=None,
                 n_jobs=1):

核心參數(shù):

  • eps: float当叭,?-鄰域的距離閾值
  • min_samples :int,樣本點要成為核心對象所需要的 ?-鄰域的樣本數(shù)閾值

屬性:

  • core_sample_indices_ : 核心點的索引盖灸,因為labels_不能區(qū)分核心點還是邊界點蚁鳖,所以需要用這個索引確定核心點
  • components_:訓(xùn)練樣本的核心點
  • labels_:每個點所屬集群的標簽,-1代表噪聲點

6赁炎、優(yōu)點和缺點

優(yōu)點

  • 不需要用戶先驗地設(shè)置簇的個數(shù)醉箕,可以劃分具有復(fù)雜形狀的簇,還可以找出不屬于任何簇的點甘邀。
  • 可以對任意形狀的稠密數(shù)據(jù)集進行聚類琅攘,相對的,K-Means之類的聚類算法一般只適用于凸數(shù)據(jù)集松邪。
  • 可以在聚類的同時發(fā)現(xiàn)異常點坞琴,對數(shù)據(jù)集中的異常點不敏感。
  • DBSCAN 比凝聚聚類和 k 均值稍慢逗抑,但仍可以擴展到相對較大的數(shù)據(jù)集剧辐。

缺點

  • 需要設(shè)置 eps

參考鏈接

本文作為筆記記錄归形,如果侵權(quán)鞭缭,聯(lián)系我刪除

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市压语,隨后出現(xiàn)的幾起案子褂傀,更是在濱河造成了極大的恐慌忍啤,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仙辟,死亡現(xiàn)場離奇詭異同波,居然都是意外死亡,警方通過查閱死者的電腦和手機叠国,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門未檩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人粟焊,你說我怎么就攤上這事冤狡∷锩桑” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵悲雳,是天一觀的道長挎峦。 經(jīng)常有香客問我,道長怜奖,這世上最難降的妖魔是什么浑测? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮歪玲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掷匠。我一直安慰自己滥崩,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布讹语。 她就那樣靜靜地躺著钙皮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顽决。 梳的紋絲不亂的頭發(fā)上短条,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音才菠,去河邊找鬼茸时。 笑死,一個胖子當著我的面吹牛赋访,可吹牛的內(nèi)容都是我干的可都。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蚓耽,長吁一口氣:“原來是場噩夢啊……” “哼渠牲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起步悠,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤签杈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鼎兽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體答姥,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年接奈,在試婚紗的時候發(fā)現(xiàn)自己被綠了踢涌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡序宦,死狀恐怖睁壁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤潘明,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布行剂,位于F島的核電站钳降,受9級特大地震影響厚宰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遂填,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一铲觉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吓坚,春花似錦撵幽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哆窿,卻和暖如春链烈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挚躯。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工强衡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秧均。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓食侮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親目胡。 傳聞我的和親對象是個殘疾皇子锯七,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354