一、算法图解

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或者KDTree用的。
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不能很好反映数据集已变化的密度;
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐