基本概念介绍:
- E邻域:给定对象半径为E内的区域称为该对象的E邻域
- 核心对象:如果给定对象E邻域的样本数大于等于MinPts,则称该对象为核心对象
- 直接密度可达:如果样本点q在p的E邻域内,并且p为核心对象,则对象q从对象p直接密度可达
- 密度可达:间接的直接密度可达
- 密度相联:对象o到对象p和q都是密度可达,那么p和q密度相联
输入:包含n个对象的数据库,半径E,最少数目MinPts
输出:所有达到密度要求的簇
计算过程:抽出一个未处理的点,如果抽出的点是核心点,找出所有与该点密度相连的对象形成一个簇,如果抽出的点不是核心点,跳出本次循环。(注意,它判断的是密度相连,而不是核心对象!)
- 任选一个为访问的点,找到在半径E范围内的所有附近点
- 如果附近点数目大于MinPts,则形成一个簇,并且该点被标记为已访问,接着执行下一个点
- 如果附近点数据小于MinPts,则标记为噪声点
优点:需要事先知道要形成的簇类的数量,可以发现任意形状的簇类,能够识别出噪声点,对于数据库中样本的顺序不敏感,即Pattern的输入顺序对结果的影响不大。但是,对于处于簇类之间边界样本,可能会根据哪个簇类优先被探测到而其归属有所摆动
缺点:不能很好反映高维数据,不能很好反映数据集以变化的密度,如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差。手动调节半径E和MinPts
疑问:
- 限定的邻域时候的半径E如何得到?是什么距离,欧氏距离?余弦距离