首页 > 试题广场 >

DBSCAN原理和算法伪代码,与kmeans,OPTICS区

[问答题]

DBSCAN原理和算法伪代码,与kmeans,OPTICS区别

算法步骤

下⾯面这张图来⾃自WIKI,图上有若干个点,其中标出了了A、B、C、N这四个点,据此来说明这个算法的步骤:

  • 首先随机选择A点为算法实施的切入点,我们将设置为图中圆的半径,对象个数m(minPts)设定为4。这里我们看到,A点的-领域包含4个对象(自己也包含在内),大于等于m(minPts),则创建A作为核心对象的新簇,簇内其他点都(暂时)标记为边缘
    点。

  • 然后在标记的边缘点中选取一个重复上一步,寻找并合并核心对象直接密度可达的对象。对暂时标记为边缘点反复递归上述算法,直⾄至没有新的点可以更新簇时,算法结束。这样就形成了了一个以A为起始的一个聚类,为图中红色的中心点和黄色的边缘点

  • 如果还有Points未处理理,再次新产⽣生一个类别来重新启动这个算法过程。遍历所有数据,如果有点既不是边缘点也不是中⼼心点,将其标记为噪⾳音。

从上述算法可知:

  • 每个簇至少包含一个核心对象;
  • 非核心对象可以是簇的⼀一部分,构成了簇的边缘(edge);
  • 包含过少对象的簇被认为是噪声;

优点

  • ⽆无需确定聚类个数
  • 可以发现任意形状的聚类
  • 对噪声具有鲁棒性,可有效处理理噪声
  • 只需两个参数,对数据输⼊入顺序不不敏敏感
  • 加快区查询
  • 参数可由领域专家设置

缺点

  • 边界点不完全确定性
  • 维数灾导致欧几里得距离度量失效
  • 不能处理理密度差异过大(密度不均匀)的聚类(会导致参数无法适用于所有聚类)
  • 参数选择在数据与规模不能很好理解的情况下,很难选择,若选取不不当,聚类质量下降
发表于 2019-04-21 20:03:19 回复(0)