The DBSCAN algorithm is a density-based clustering technique. Such algorithms assume that clusters are
regions of high density patterns, separated by regions of low density in the data space. A cluster (or grouped data
set) is defined as a connected dense component and grows in any direction that density leads. The operation of
the algorithm is straightforward and is based on calculating a proximity radius between each pair of objects. This
calculation is defined according to the adopted similarity metric (i.e. Euclidean distance, cosine similarity etc.).
For each object in the dataset, the algorithm evaluates the number of neighbours that an object have by counting
the number of other objects that are within a proximity radius (minimum R), defined as an input parameter of the
algorithm. Based on this calculation, each object is labelled core, border or noise, according to its number of
neighbours. If a given object has more neighbours than a minimum value (MinPts), also defined as a parameter of
the algorithm, it is classified as core, and all objects reachable from it, either directly (direct neighbours) or indirectly (neighbours of neighbours), are classified as border. All the others objects, not reachable from any core, are
classified as noise. Each set of objects associated with a core determines a cluster. Figure 1 illustrate this process.