项目地址:https://github.com/Daya-Jin/ML_for_learner/blob/master/cluster/DBSCAN.ipynb
原博客:https://daya-jin.github.io/2018/08/06/DBSCAN/
模型概述
DBSCAN是一种聚类算法,首先明确几个概念:
-
-邻域:对任一样本点
,数据集
中与该样本点的距离不大于
的其余样本点构成的集合,该集合内的样本数为该点的密度,即
dense_i
- 核心对象(core object):若某一样本的密度不小于一个阈值,即
dense_i
Min_pts
,则该样本是一个核心对象 - 边界对象:若某一样本的密度小于
Min_pts
,则该样本成为边界对象;特别地,密度为的样本被称为噪声样本
- 密度直达:核心对象直达其邻域内的样本点,直达方向由核心对象指向其邻域内的样本点
- 密度可达:对两个样本点
与
,若存在一条密度直达链
,则称
可达
,方向由
指向
,前者必须为核心对象,后者不作要求
- 密度相连:同一个核心对象可达的两样本点称为密度相连,即同时存在两条直达链:
与
,
与
密度相连
DBSCAN算法将所有密度相连的样本聚成一类。换个角度来说,DBSCAN会尽量多的寻找密度相连的核心对象(容易推出密度相连在核心对象上满足交换律),然后将这些核心对象及其邻域样本都归为一类。
网友评论