1. DBSCAN簡介
- 密度聚類 (亦稱基于密度的聚類算法歪架,density-based clustering)算法假設聚類結構能通過樣本分布的緊密程度確定。通常情況下霹陡,密度聚類算法從樣本的密度的角度來考察樣本之間的可連接性和蚪,并基于可連接性不斷擴展聚類簇已獲得最終的聚類結果。
- DBSCAN是一種著名的密度聚類算法烹棉,它基于一組“領域”參數(shù)來刻畫樣本分布的緊密程度攒霹。 和K-Means,BIRCH這些一般只適用于凸樣本集的聚類相比浆洗,DBSCAN既可以適用于凸樣本集催束,也可以適用于非凸樣本集。
- 凸樣本集定義: 簡單來說伏社,數(shù)據(jù)集D中任意兩點的連線上的點抠刺,也會在數(shù)據(jù)集D內(nèi),那么數(shù)據(jù)集D就是一個凸集摘昌。如下圖所示就是一個非凸樣本集速妖,Kmeans效果表現(xiàn)非常差。
2. DBSCAN基本概念
對于給定的數(shù)據(jù)集聪黎,定義以下幾個基本概念:
- -領域: 對, 其-領域包含樣本集中與的距離不大于的樣本罕容,即;
- 核心對象(core object): 若的-領域至少包含MinPts個樣本稿饰,即锦秒,則是一個核心對象;
- 密度直達(directly density-reachable): 若位于的-領域中湘纵,且是核心對象脂崔,則稱由密度直達滤淳;
- 密度可達(density-reachable): 對與梧喷,若存在樣本序列其中 且由密度直達,則稱由密度可達;
- 密度相連(density-connected): 對與铺敌,若存在使得與均由密度可達汇歹,則稱與密度相連;
-
下圖中藍色點為核心對象偿凭,假設MinPts=3
3. DBSCAN核心思想
- DBSCAN將“簇”定義為:由密度可達關系導出的最大的密度相連樣本集合产弹。DBSCAN算法首先任選數(shù)據(jù)集中的一個核心對象為“種子”,再由此出發(fā)確定相應的聚類簇弯囊。首先根據(jù)領域參數(shù)找出所有核心對象痰哨,然后以任意核心對象為出發(fā)點,找出由其密度可達的樣本生成聚類簇匾嘱,直到所有核心對象均被訪問過為止斤斧。
- 首先找到所有的核心對象(Core Point)集合,下圖的紅色點為核心對象霎烙;
- 其次撬讽,隨機挑選一個核心對象,以此對象出發(fā)由密度可達關系導出最大的密度相連樣本集合悬垃。
4. sklearn中使用DBSCAN聚類算法
參考文檔:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
參考資料
- Clustering with DBSCAN, Clearly Explained!!! 【視頻教程】
https://www.youtube.com/watch?v=RDZUdRSDOok - 【math】凸數(shù)據(jù)集 & 非凸數(shù)據(jù)集
https://blog.csdn.net/qq_36056219/article/details/122810081 - 《機器學習》 - 周志華 9.5節(jié) 密度聚類
- DBSCAN Clustering Algorithm in Machine Learning
https://www.kdnuggets.com/2020/04/dbscan-clustering-algorithm-machine-learning.html
劉建平Pinard博客
- DBSCAN密度聚類算法 https://www.cnblogs.com/pinard/p/6208966.html
- 用scikit-learn學習DBSCAN聚類 https://www.cnblogs.com/pinard/p/6217852.html