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.