Aller au contenu principal

Data Science & ML · L3 · Section 3/12

Apprentissage non supervisé

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Apprentissage non supervisé

Contrairement au supervisé, il n'y a pas de labels. L'objectif est de découvrir des structures dans les données: groupes naturels (clustering), dimensions latentes (réduction), ou points atypiques (anomalies). Sans cible, « mieux » ne se mesure pas avec une accuracy: il faut des critères internes (silhouette, inertie), des critères de stabilité, ou une référence externe disponible seulement à des fins d'évaluation.

#Prérequis et objectifs

Prérequis: page « Pipeline et features » (scaling, encodage, split train/test), page d'index du module (rôles des jeux de données), distances euclidiennes et variance du module d'algèbre linéaire.

Objectifs d'apprentissage:

  • choisir une famille de méthodes non supervisées selon le but: partitionner, compresser, détecter des anomalies;
  • évaluer un clustering avec des critères internes (coude, silhouette) et connaître leurs limites;
  • éviter les pièges classiques: features non standardisées, anomalies qui contaminent l'entraînement, PCA ajustée sur tout le jeu de données;
  • interpréter une réduction de dimension sans sur-lire les distances (t-SNE).

#Techniques principales

Clustering
Regrouper les points similaires
Réduction de dimension
Compresser, visualiser, débruiter
Détection d'anomalies
Identifier les points atypiques
Association
Règles co-occurrence (panier)

#Clustering: K-Means

K-Means partitionne les données en K clusters en minimisant l'inertie, c'est-à-dire la somme des distances carrées des points à leur centroïde. L'algorithme alterne assignment (chaque point rejoint le centroïde le plus proche) et mise à jour (chaque centroïde devient la moyenne de ses points), jusqu'à convergence. Il trouve un minimum local: le résultat dépend de l'initialisation, d'où plusieurs redémarrages (paramètre n_init).

Deux conditions d'usage souvent négligées: les features doivent être standardisées (la distance euclidienne sinon est dominée par les variables à grande échelle), et les clusters cherchés sont supposés à peu près sphériques et de taille comparable.

Chargement de l’éditeur...

Le silhouette score varie entre -1 et 1: proche de 1, le point est bien dans son cluster; proche de 0, il est à cheval; négatif, il est probablement mal assigné. La moyenne sur tous les points donne un critère comparable entre valeurs de K, ce que l'inertie ne permet pas (elle décroît mécaniquement quand K augmente).

#Choisir K: coude et silhouette

La méthode du coude trace l'inertie en fonction de K et cherche le point d'inflexion: au-delà, ajouter un cluster ne gagne plus beaucoup. Ce « coude » est parfois visuellement ambigu; le silhouette score offre alors un second avis chiffré.

Chargement de l’éditeur...

Observation attendue: l'inertie chute fortement jusqu'à K=4 puis décroît lentement (le coude), et la silhouette est maximale pour K=4. Quand les deux critères s'accordent, le choix est solide; quand ils divergent, documentez les deux lectures et tranchez selon l'usage métier des clusters.

#DBSCAN: clustering par la densité

DBSCAN regroupe les points qui forment des zones denses et marque comme bruit les points isolés. Contrairement à K-Means, il trouve des clusters de forme arbitraire (les deux croissants ci-dessous), n'exige pas de fixer K, et identifie les anomalies (étiquette -1) au passage.

Chargement de l’éditeur...

Le couple (eps, min_samples) pilote tout: eps trop petit et tout devient bruit, trop grand et les clusters fusionment. Une heuristique courante: fixer min_samples à environ le double de la dimension, puis choisir eps au coude du graphe des k-distances (distance au k-ième voisin triée). Ces seuils restent des choix à documenter.

#Réduction de dimensionnalité: PCA

L'analyse en composantes principales projette les données sur les axes de variance maximale. Usages: visualiser en 2D ou 3D, débruiter, compresser, ou désynchroniser des features corrélées avant un modèle linéaire.

Chargement de l’éditeur...

Observation attendue: les deux premières composantes portent environ 96% de la variance. On peut reconstituer les données en projetant en retour: l'erreur quadratique moyenne de reconstruction est exactement la variance laissée de côté.

#t-SNE pour la visualisation

t-SNE préserve les voisinages locaux plutôt que les distances globales: deux points proches dans le plongement étaient probablement proches dans l'espace d'origine, mais la distance entre deux amas, ou la taille relative des amas, n'a pas de signification. La perplexité (nombre de voisins effectifs, typiquement 5 à 50) change sensiblement la figure.

pythonpython

1from sklearn.manifold import TSNE2 3tsne = TSNE(n_components=2, perplexity=30, random_state=42)4X_embedded = tsne.fit_transform(X)

Trois règles d'hygiène: garder la perplexité par défaut ou l'explorer explicitement, vérifier la stabilité entre exécutions, et ne jamais alimenter un modèle supervisé avec un plongement t-SNE (il n'a pas de transformation transform pour de nouveaux points, et les distances globales sont non interprétables).

#Détection d'anomalies

Isolation Forest isole les points atypiques par des coupes aléatoires: moins il faut de coupes pour isoler un point, plus il est anormal. Un point clé souvent oublié: si le jeu d'entraînement contient déjà des anomalies, le modèle les considère comme normales. Entraîner sur une population supposée saine, ou utiliser contamination avec parcimonie, et valider la taux d'alerte avec un expert métier.

#Règles d'association

Pour les paniers d'achat: une règle « si A alors B » se juge par trois nombres. Support: fréquence de la règle dans les transactions. Confiance: proportion des paniers contenant A qui contiennent aussi B. Lift: confiance divisée par la fréquence de B; un lift supérieur à 1 signale une co-occurrence plus fréquente que le hasard. Attention aux fausses découvertes: avec des milliers de règles testées, certaines dépassent le hasard par pur effet multiple; exigez un support minimal et validez sur une période disjointe.

#Exercice vérifiable: retrouver le nombre de clusters

Modifiez le playground du coude pour générer make_blobs(n_samples=400, centers=5, cluster_std=0.8, random_state=7), puis faites varier K de 2 à 8 et relevez la silhouette maximale. Corrigé: la silhouette culmine pour K=5, avec une valeur typiquement supérieure à 0.4, et l'inertie présente son coude au même endroit. Deuxième partie: passez cluster_std=2.2 (clusters qui se chevauchent); la silhouette maximale descend vers 0.3 ou moins et le K optimal peut glisser. Conclusion observable: quand les groupes se recouvrent, les critères internes deviennent hésitants, et c'est un signal en soi.

#Quiz

Quelle méthode de clustering ne nécessite pas de spécifier le nombre de clusters K?
Quelle méthode de clustering ne nécessite pas de spécifier le nombre de clusters K?
Vous utilisez une PCA pour préparer un classifieur. Comment éviter la fuite de données?
Vous utilisez une PCA pour préparer un classifieur. Comment éviter la fuite de données?