DBSCAN算法的实现过程

1.初始化设置方式:

      建立原始的数据集dataset,并在原始数据集中增加一个数据属性ClusterId字段,本字段用于存储分类后的结果,刚开始每个对象的ClusterId属性值都为0;

      建立一个搜寻的数据集Search,用于临时存储搜寻的中间结果。

      对参数MinPtsEps进行初始化。

2.遍历dataset,将每一个数据对象当做种子进行考察,i=1,j=1,cluster=1。

    (1)对于Pi,如果Pi.ClusterId = 0,搜索其Eps领域,如果Neps(pi)MinPts,则点Pi为核心点,Pi.ClusterID=cluster,将PiEps-领域包含的所有点存入Search中。

  (2)遍历Search,将每一个点作为种子点进行考察,对于点qj,如果qj.clusterID=0,搜索其Eps-领域,如果Neps(qj)MinPts,则qj也是一个核心点,同时它是点pi的直接密度可达点,与pi同属一类,qj.clusterID=cluster;否则qj为边界点,但qj.clusterID=cluster。如果qj是核心点,且点oNeps(qj)并且o不属于Search,则将o点存入Search中。最后,将点qj从Search中删除。

  (3)j=j+1,如果Search为非空,执行步骤(2)。

3. i= i+1,cluster = cluster+1,执行步骤(2)直到遍历完数据集dataset

4.删除搜索数据集search

猜你喜欢

转载自xjnine.iteye.com/blog/2046680