Input: |
() A set of objects in a spatial area as |
() , The neighbor list size |
() Eps points –radius for spatial and non-spatial data objects |
() Minpts- The minimum number of points that must exist in the Eps neighborhood |
() - Threshold value to be included in a cluster. |
Output: Clusters with their core objects and noise points as . |
Method: |
() Set cluster_layer = 0; |
() Initialize a loop for selecting objects from the given data base |
For to do |
//select an arbitrary object and check if it is visited or not |
If does not belong to any cluster, then |
Move forward to process next point |
= process_neghbors as region query(, Eps); |
If sizeof() < Minpts then |
Mark next point() as noise |
Else |
Cluster_layer = Cluster_layer + 1; //Increase the cluster number |
For to sizeof() // set cluster number to all points in |
End (of marking) |
Expand cluster by pushing all points to |
Expand cluster(push() all objects to ) |
While ( = empty()) //Repeat the process while database is not empty |
Object = pop(); //Apply pop operation on current object |
= process_neighbors(current point, Eps1, Eps2) //spatial and non spatial objects distance |
If ≥ Minpts then |
For to in |
If ( is not visited and not identified as a noise and sizeofneghborpts ≥ ) then |
Add with current cluster |
End if |
End if |
Push() |
End for |
End for |
Region Query(, Eps) |
End while |
End of algorithm |
Return all points with cluster number and Eps-neighborhood. |