Atelier : comparer k-means et DBSCAN
Inertie, silhouette et lecture métier.
Énoncé
Sur lunes + gaussienne générées en numpy (angles uniformes + bruit gaussien, graine 0, formules dans les indices — pas de make_moons) mises à l'échelle : k-means (leçon précédente mia-kmeans-sklearn) k = 2..4 (inertie + silhouette_score de la leçon mia-inertie-silhouette) vs DBSCAN (eps balayé). Livrez tailles, centres/exemples et une phrase par groupe : "qui sont-ils ?".
Contraintes
Échelle dans pipeline, graines notées, aucun usage des étiquettes pour choisir (juste pour raconter après).
Indices
Lunes en numpy (demi-cercles + bruit, voir mia-kmeans-sklearn), StandardScaler, silhouette_score (leçon mia-inertie-silhouette), courbe k-distances pour eps.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
from sklearn.cluster import KMeans, DBSCAN
km = KMeans(n_clusters=2, n_init=10, random_state=0).fit(Xs)
db = DBSCAN(eps=0.3, min_samples=10).fit(Xs)
Attendu : k-means coupe les lunes, DBSCAN les suit avec du bruit étiqueté -1. Moralité : la forme supposée décide de l'algorithme, pas le score seul.