← retour aux snippets

sklearn: DBSCAN basique

Clustering par densité avec eps/min_samples.

objectif

Clustering par densité avec eps/min_samples.

code minimal

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
X, _ = make_moons(n_samples=200, noise=0.05, random_state=0)
labels = DBSCAN(eps=0.3, min_samples=5).fit_predict(X)
print(set(labels) <= set([-1,0,1,2]))

utilisation

from sklearn.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors=4).fit(X)
d, _ = nn.kneighbors(X)
print(d.shape[1] == 4)

variante(s) utile(s)

from sklearn.cluster import OPTICS
print(hasattr(OPTICS(), "fit"))

notes

  • Ajuster eps via k-distances; -1 marque le bruit.