機器學習-聚類分析之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密度聚類機器學習聚類
- 【Python機器學習實戰】聚類演算法(2)——層次聚類(HAC)和DBSCANPython機器學習聚類演算法
- 機器學習 之 層次聚類機器學習聚類
- 9.1.6 DBSCAN聚類演算法————機器學習實戰第二版聚類演算法機器學習
- 【機器學習】K-means聚類分析機器學習聚類
- 機器學習(8)——其他聚類機器學習聚類
- 【無監督學習】2:DBSCAN聚類演算法原理聚類演算法
- 初探DBSCAN聚類演算法聚類演算法
- 20分鐘學會DBSCAN聚類演算法聚類演算法
- MVO優化DBSCAN實現聚類優化聚類
- 機器學習演算法筆記之8:聚類演算法機器學習演算法筆記聚類
- 【Python機器學習實戰】聚類演算法(1)——K-Means聚類Python機器學習聚類演算法
- 機器學習Sklearn系列:(五)聚類演算法機器學習聚類演算法
- 【機器學習】--譜聚類從初始到應用機器學習聚類
- 從零開始學機器學習——K-Means 聚類機器學習聚類
- 從零開始學機器學習——聚類視覺化機器學習聚類視覺化
- 【機器學習】--層次聚類從初識到應用機器學習聚類
- 機器學習中的聚類演算法演變及學習筆記機器學習聚類演算法筆記
- 機器學習(五):混合高斯聚類GMM(求聚類標籤)+PCA降維(3維降2維)習題機器學習聚類PCA
- 聚類演算法——DBSCAN演算法原理及公式聚類演算法公式
- 程式設計實現DBSCAN密度聚類演算法,並以西瓜資料集4.0為例進行聚類效果分析程式設計聚類演算法
- 聚類分析聚類
- DBSCAN聚類演算法(Density-Based Spatial Clustering of Applications with Noise)聚類演算法APP
- 演算法金 | K-均值、層次、DBSCAN聚類方法解析演算法聚類
- 機器學習—聚類5-1(K-Means演算法+瑞士捲)機器學習聚類演算法
- 【火爐煉AI】機器學習026-股票資料聚類分析-近鄰傳播演算法AI機器學習聚類演算法
- 機器學習之迴歸分析--預測值機器學習
- 【機器學習】--Python機器學習庫之Numpy機器學習Python
- 機器學習之學習速率機器學習
- 機器學習之樸素貝葉斯分類機器學習
- 機器學習系列之分類機器學習
- 機器學習降維之線性判別分析機器學習
- 【機器學習】支援向量機分類機器學習
- 機器學習之學習曲線機器學習
- 【火爐煉AI】機器學習020-使用K-means演算法對資料進行聚類分析AI機器學習演算法聚類
- 【機器學習】--xgboost初始之程式碼實現分類機器學習
- 機器學習之pca機器學習PCA
- 機器學習之皮毛機器學習