密度聚类算法_DBSCAN算法

名词解释:

ε(Eps)邻域:以给定对象为圆心,半径为ε的邻域为该对象的ε邻域

核心对象:若ε邻域至少包含MinPts个对象,则称该对象为核心对象

直接密度可达:如果p在q的ε邻域内,而q是一个核心对象,则说对象q出发是直接密度可达的

密度可达:如果存在一个对象链p1,p2,....pn,p1=q.pn=p,对于pi∈D(1<= i <=n), pi+1 是从 pi 关于ε和MinPts直接密度可达的, 则对象p是从对象q关于ε和MinPts密度可达的

密度相连:对象p和对象q都是从0关于ε和MinPts密度可达的,那么对象p和q是关于ε和MinPts密度相连的

噪声:一个基于密度的簇是基于密度可达性的最大密度相连对象的集合。不包括在任何簇中的对象被认为是噪声

边界点:边界点不是核心点,但落在某个核心点的领域内

DBSCAN 算法根据以上的定义在数据库中发现簇和噪声。簇可等价于集合D中, 这个簇核心对象密度可达的所有对象的集合。

DBSCAN算法描述:

输入:包含n个对象的数据库,半径ε,最少数目MinPts。

输出:所有生成的簇,达到密度要求。

1.REPEAT

2.从数据库中抽取一个未处理过的点;

3.IF 抽出的点是核心点 THEN找出所有从该点密度可达的对象,形成一个簇

4.ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一点;

5.UNTIL 所有点都被处理

DBSCAN算法步骤 :

输入:数据集D,参数MinPts, ε 输出:簇集合

1:首先将数据集合D中的所有对象标记为unvisited

2:do

    从D中随机选取一个unvisited对象p,并将p标记为visited

   if p 的ε 邻域 包含的对象数至少为MinPts个

  创建新簇C,并将p添加到c中

  令N为p的ε 邻域 中对象的集合

  for N中每个点的pi

    if pi是unvisited

      标记为visited

        if pi的ε 邻域 包含的对象数至少为MinPts个 对象,把这些对象添加到N

      if pi 还不是任何簇的对象,将pi添加到簇c中

end for

输出 c

else 

 标记p为噪声

untill 没有标记为unvisited对象

猜你喜欢

转载自blog.csdn.net/hyyjiushiliangxing/article/details/107823234