Modèles agglomératifs
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 17 sur 51.
Des voitures remplissent deux parkings, avec une file de voitures le long de la route qui les sépare. Deux façons de les regrouper en 2 clusters :
scikit-learn effectue les fusions. Indique où t'arrêter avec n_clusters :
from sklearn.cluster import AgglomerativeClustering
model = AgglomerativeClustering(n_clusters=2, linkage="ward")
labels = model.fit_predict(X)linkage détermine à quelle distance se trouvent deux groupes :
"ward", la valeur par défaut : garde les groupes compacts"complete": leur paire la plus éloignée"average": la moyenne de toutes les paires"single": leur paire la plus proche
Single suit des chaînes : ici, la route engloutit les deux parkings. Ward forme des groupes ronds et réguliers.
Défi
MoyenLes fraises des bois poussent en trois zones, ainsi que quelques-unes le long d’un chemin. Quelle méthode de liaison permet de trouver les zones ? plants contient leurs positions.
- Pour chaque méthode de liaison dans
linkages, répartis les plants en 3 groupes. - Affiche les tailles des groupes sous forme de liste, de la plus grande à la plus petite.
- Lorsque le groupe le plus grand contient plus de la moitié des plants, ajoute
chained.
Pour une autre prairie :
ward: [40, 38, 31]
complete: [41, 37, 31]
average: [41, 37, 31]
single: [86, 22, 1] chainedEssayez vous-même
import numpy as np
import pandas as pd
from sklearn.cluster import AgglomerativeClustering
# Emplacement de 109 plants de fraisiers sauvages dans une prairie (en mètres) : trois groupes et un chemin
rng = np.random.default_rng(4)
plants = np.round(np.concatenate([
rng.normal([2, 3], 0.8, size=(40, 2)),
rng.normal([9, 4], 1.0, size=(35, 2)),
rng.normal([6, 10], 0.9, size=(25, 2)),
np.column_stack([np.linspace(3, 8, 9), np.linspace(3.2, 4, 9)]) + rng.normal(0, 0.15, size=(9, 2)),
]), 2)
linkages = ["ward", "complete", "average", "single"]
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage non supervisé
1Découvrir des groupes
Apprendre sans étiquettesMesurer la similaritéK-Means à la mainK-Means avec scikit-learnRécapitulatif : les membres de la salle de sport4Classification hiérarchique
Fusion étape par étapeModèles agglomératifsDendrogrammesRécapitulatif : races de chiens7L’ACP en pratique
Visualiser 64 dimensionsLes composantes comme motifsCompresser et reconstruireL’ACP avant un modèleRécapitulatif : scanner de visages10Projet : Explorateur de chiffres
Observer les chiffresRéduire avec la PCARegrouper les chiffresNommer les groupesRepérer les intrus2Choisir k
InertieLa méthode du coudeScores de silhouetteMettre à l’échelle avant le clusteringRécapitulatif : zones de livraisonEntraînez-vous par vous-même : Compilateur Python en ligne