ML:非监督学习之 聚类 之 2 DBSAN聚类(sklearn.cluster.dbscan))
·
一、算法图解
DBSCAN:Dense-Based Spatial Clustering of Applications with Noise(基于密度的&带噪点的空间聚类应用方法)
举个栗子:

- 此处潜在设定条件:Min_smaples(或者叫MinPoints / Minpts)= 4;
- 核心点:红点,因为以红点为圆心,“Eps/邻域”为半径的范围内,样本点个数至少有4个(即 Min_samples);
- 边界点:黄点,因为它虽然在圆的范围里,但以它为圆心“Eps/邻域”为半径的范围内,不满足Min_samples至少为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;
)
三、优缺点
- 优点
- 与KMeans相比,不需要事先设定cluster数;
- 与KMeans相比,可以发现任意形状的cluster;
- 同时,DBSCAN能够识别出噪点;
- DBSCAN对于数据库中样本的顺序不敏感,即pattern的输入顺序对结果的影响不大。但是,对处于cluster边界的样本,可能会根据那个cluster优先被探测到而归属有所摆动;
- 缺点
- 当数据量增大时,要求较大的内存支持,I/O消耗也很大;
- DBSCAN不能很好的反映高维数据,算法聚类效果依赖于距离公式的选取(实际应用中常用欧式距离);
- 如果样本呢的密度不均匀、cluster的间距又很大的时候,聚类质量不好(参见 刘建平Pinard的博客 )
- DBSCAN不能很好反映数据集已变化的密度;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)