objectif
DBSCAN et courbe des k-distances pour choisir eps.
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)
db = DBSCAN(eps=0.2, min_samples=5).fit(X)
print(set(db.labels_).__contains__(-1) or True)
utilisation
from sklearn.neighbors import NearestNeighbors
import numpy as np
nbrs = NearestNeighbors(n_neighbors=5).fit(X)
distances, _ = nbrs.kneighbors(X)
kdist = np.sort(distances[:, -1])
print(kdist[:3].round(3).tolist())
variante(s) utile(s)
from sklearn.neighbors import NearestNeighbors
model = NearestNeighbors(n_neighbors=4)
print(hasattr(model, "fit"))
notes
- Chercher l’épaule sur la courbe k-dist pour fixer eps.