機器學習-聚類分析之DBSCAN
DBSCAN聚類
DBSCAN官方文件:
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
GitHub文件地址:https://github.com/gao7025/cluster_dbscan.git
基本概念
DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪聲的基於密度的聚類方法)是一種基於密度的空間聚類演算法。 該演算法將具有足夠密度的區域劃分為簇,並在具有噪聲的空間資料庫中發現任意形狀的簇,它將簇定義為密度相連的點的最大集合。
*class sklearn.cluster.DBSCAN(eps=0.5, , min_samples=5, metric=‘euclidean’, metric_params=None, algorithm=‘auto’, leaf_size=30, p=None, n_jobs=None)
DBSCAN演算法是一種基於密度的聚類演算法,其優勢是聚類的時候不需要預先指定簇的個數,其會根據設定的引數確定最終的聚類個數及形態,DBSCAN演算法將資料點分為三類:
- 核心點:在半徑Eps內含有超過MinPts數目的點。
- 邊界點:在半徑Eps內點的數量小於MinPts,但是落在核心點的鄰域內的點。
- 噪音點:既不是核心點也不是邊界點的點。
主要步驟
隨機取距離半徑eps=2,最小數量minpts=3為例
- 對每個點計算其鄰域eps=2內點的集合
- 集合內點的個數超過minpts=3的點為核心點,檢視剩餘點是否在核心點的領域內,若在則為邊界點,否則為噪聲點
- 將距離不超過eps=2的點相互連線,構成一個簇,注意核心點領域內的點也要被加入到這個簇中
兩個引數的選擇
從聚類的過程看,選取的距離半徑和簇內最小數量兩個引數對結果影響很大,主要有兩個方法可以嘗試下:
- 通過找到所有點中距離最大的進行分割確定距離半徑
- 距離半徑和最小數量組合尋優
程式碼示例
def dbscan_clusters(X, y):
np.random.seed(123)
if y == 'y':
scaler = MinMaxScaler()
scaler.fit(X.astype(float))
X = scaler.transform(X)
dbs = DBSCAN(eps=0.5, # 鄰域半徑
min_samples=5, # 最小樣本點數,MinPts
metric='euclidean',
metric_params=None,
algorithm='auto', # 'auto','ball_tree','kd_tree','brute',4個可選的引數 尋找最近鄰點的演算法
leaf_size=10, # balltree,cdtree的引數
p=None,
n_jobs=2)
dbs.fit(X)
return X, dbs
部分結果展示
相關文章
- 機器學習——dbscan密度聚類機器學習聚類
- 聚類之dbscan演算法聚類演算法
- 【Python機器學習實戰】聚類演算法(2)——層次聚類(HAC)和DBSCANPython機器學習聚類演算法
- 初探DBSCAN聚類演算法聚類演算法
- DBSCAN密度聚類演算法聚類演算法
- 9.1.6 DBSCAN聚類演算法————機器學習實戰第二版聚類演算法機器學習
- MVO優化DBSCAN實現聚類優化聚類
- 機器學習 之 層次聚類機器學習聚類
- 用scikit-learn學習DBSCAN聚類聚類
- 【機器學習】K-means聚類分析機器學習聚類
- 20分鐘學會DBSCAN聚類演算法聚類演算法
- 聚類演算法——DBSCAN演算法原理及公式聚類演算法公式
- 機器學習(8)——其他聚類機器學習聚類
- 聚類分析聚類
- 程式設計實現DBSCAN密度聚類演算法,並以西瓜資料集4.0為例進行聚類效果分析程式設計聚類演算法
- 【無監督學習】2:DBSCAN聚類演算法原理聚類演算法
- 機器學習入門|聚類(二)機器學習聚類
- 用Spark和DBSCAN對地理定位資料進行聚類Spark聚類
- 演算法金 | K-均值、層次、DBSCAN聚類方法解析演算法聚類
- DBSCAN聚類演算法(Density-Based Spatial Clustering of Applications with Noise)聚類演算法APP
- Python+sklearn使用DBSCAN聚類演算法案例一則Python聚類演算法
- mahout之聚類演算法——KMeans分析聚類演算法
- 機器學習演算法筆記之8:聚類演算法機器學習演算法筆記聚類
- 深度解讀DBSCAN聚類演算法:技術與實戰全解析聚類演算法
- 聚類分析-案例:客戶特徵的聚類與探索性分析聚類特徵
- 《資料分析實戰-托馬茲.卓巴斯》讀書筆記第4章-聚類技巧(K均值、BIRCH、DBSCAN)筆記聚類
- 聚類之K均值聚類和EM演算法聚類演算法
- 機器學習Sklearn系列:(五)聚類演算法機器學習聚類演算法
- 【機器學習】--譜聚類從初始到應用機器學習聚類
- 【Python機器學習實戰】聚類演算法(1)——K-Means聚類Python機器學習聚類演算法
- K-均值聚類分析聚類
- 機器學習之k-means聚類演算法(python實現)機器學習聚類演算法Python
- 【機器學習】---密度聚類從初識到應用機器學習聚類
- 《Spark機器學習》筆記——Spark構建聚類模型Spark機器學習筆記聚類模型
- 資料處理 聚類分析聚類
- 聚類分析軟體操作流程聚類
- 【機器學習】--層次聚類從初識到應用機器學習聚類
- 機器學習(五):混合高斯聚類GMM(求聚類標籤)+PCA降維(3維降2維)習題機器學習聚類PCA