# View Source Scholar.Cluster.DBSCAN(Scholar v0.2.1)

Perform DBSCAN clustering from vector array or distance matrix.

DBSCAN - Density-Based Spatial Clustering of Applications with Noise. Finds core samples of high density and expands clusters from them. Good for data which contains clusters of similar density.

# Summary

## Functions

Perform DBSCAN clustering from vector array or distance matrix.

# fit(x, opts \\ [])

View Source

Perform DBSCAN clustering from vector array or distance matrix.

## Options

• :eps - The maximum distance between two samples for them to be considered as in the same neighborhood. The default value is 0.5.

• :min_samples (integer/0) - The number of samples (or total weight) in a neighborhood for a point to be considered as a core point. This includes the point itself. The default value is 5.

• :metric - Name of the metric. Possible values:

• {:minkowski, p} - Minkowski metric. By changing value of p parameter (a positive number or :infinity) we can set Manhattan (1), Euclidean (2), Chebyshev (:infinity), or any arbitrary $L_p$ metric.

• :cosine - Cosine metric.

The default value is {:minkowski, 2}.

• :weights - The weights for each observation in x. If equals to nil, all observations are assigned equal weight.

## Return Values

The function returns a struct with the following parameters:

• :core_sample_indices - Indices of core samples represented as a mask. The mask is a boolean array of shape {num_samples} where 1 indicates that the corresponding sample is a core sample and 0 otherwise.

• :labels - Cluster labels for each point in the dataset given to fit(). Noisy samples are given the label -1.

## Examples

iex> x = Nx.tensor([[1, 2], [2, 2], [2, 3], [8, 7], [8, 8], [25, 80]])
iex> Scholar.Cluster.DBSCAN.fit(x, eps: 3, min_samples: 2)
%Scholar.Cluster.DBSCAN{
core_sample_indices: Nx.tensor(
[1, 1, 1, 1, 1, 0], type: :u8
),
labels: Nx.tensor(
[0, 0, 0, 1, 1, -1]
)
}