ML:非監督學習之 聚類 之 2 DBSAN聚類(sklearn.cluster.dbscan))

一、算法圖解

DBSCAN:Dense-Based Spatial Clustering of Applications with Noise(基於密度的&帶噪點的空間聚類應用方法)

舉個栗子:
在這裏插入圖片描述

  1. 此處潛在設定條件:Min_smaples(或者叫MinPoints / Minpts)= 4;
  2. 核心點:紅點,因爲以紅點爲圓心,“Eps/鄰域”爲半徑的範圍內,樣本點個數至少有4個(即 Min_samples);
  3. 邊界點:黃點,因爲它雖然在圓的範圍裏,但以它爲圓心“Eps/鄰域”爲半徑的範圍內,不滿足Min_samples至少爲4的要求;
  4. Noise(噪點):藍點,即沒有在圓範圍的點;
二、sklearn官方文檔鏈接
sklearn.cluster.dbscan(
X,                     # 一個feature數組,shape爲(n_samples, n_featrues),或者是 當`metric='precomputed'`的樣本間距離數組;
eps=0.5,               # 見上邊例子
min_samples=5,         # 見上邊例子
metrics='minkowski',  	# 計算2點距離的方法
metric_params=None,
algorithm='auto', #可選參數爲['auto', 'ball_tree', 'kd_tree', 'brute']
leaf_size=30, # 可選的參數,BallTree或者cKDTree用的。
p=2,   # 用來計算2點之間距離的Minsowski矩陣的冪
sample_weight=None,
n_jobs=None    # 並行運算的數目The number of parallel jobs to run for neighbors search;
)
三、優缺點
  • 優點
  1. 與KMeans相比,不需要事先設定cluster數;
  2. 與KMeans相比,可以發現任意形狀的cluster;
  3. 同時,DBSCAN能夠識別出噪點;
  4. DBSCAN對於數據庫中樣本的順序不敏感,即pattern的輸入順序對結果的影響不大。但是,對處於cluster邊界的樣本,可能會根據那個cluster優先被探測到而歸屬有所擺動;
  • 缺點
  1. 當數據量增大時,要求較大的內存支持,I/O消耗也很大;
  2. DBSCAN不能很好的反映高維數據,算法聚類效果依賴於距離公式的選取(實際應用中常用歐式距離);
  3. 如果樣本呢的密度不均勻、cluster的間距又很大的時候,聚類質量不好(參見 劉建平Pinard的博客
  4. DBSCAN不能很好反映數據集已變化的密度;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章