Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Effectuer un Regroupement Hiérarchique | Algorithmes de Regroupement de Base
Analyse de Cluster

book
Effectuer un Regroupement Hiérarchique

Tâche

Swipe to start coding

Votre tâche consiste à utiliser différents types de liaison et à examiner la performance du clustering agglomératif sur les ensembles de données de lunes et de cercles. Vous devez :

  1. Importer la classe AgglomerativeClustering du module sklearn.cluster.
  2. Ajouter un paramètre nommé linkage comme entrée de la fonction.
  3. Ajouter la méthode .fit() de l'objet agglomerative pour entraîner le modèle.
  4. Utiliser 'single', 'complete', et 'average' comme paramètres de la fonction (les paramètres dans le code doivent être utilisés dans le même ordre).

Solution

from sklearn.datasets import make_moons, make_circles
import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import AgglomerativeClustering

def check_linkage_parameter(X, y, ds_name, linkage):
agglomerative = AgglomerativeClustering(linkage=linkage,
distance_threshold=0.5, n_clusters=None)
agglomerative.fit(X)
fig, axes = plt.subplots(1, 2)
fig.suptitle(ds_name+' dataset: '+ str(linkage)+' linkage')
axes[0].scatter(X[:, 0], X[:, 1], c=y, cmap='tab20b')
axes[0].set_title('Real clusters')
axes[1].scatter(X[:, 0], X[:, 1], c=agglomerative.labels_, cmap='tab20b')
axes[1].set_title('Clusters with Agglomerative')
X, y = make_moons(n_samples=500)
check_linkage_parameter(X, y, 'Moons', linkage='single')
check_linkage_parameter(X, y, 'Moons', linkage='complete')
check_linkage_parameter(X, y, 'Moons', linkage='average')

X, y = make_circles(n_samples=500)
check_linkage_parameter(X, y, 'Circles', linkage='single')
check_linkage_parameter(X, y, 'Circles', linkage='complete')
check_linkage_parameter(X, y, 'Circles', linkage='average')

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4
single

single

from sklearn.datasets import make_moons, make_circles
import matplotlib.pyplot as plt
import numpy as np
from sklearn.___ import ___

# this function will train agglomerative model with different linakges and plot the results
def check_linkage_parameter(X, y, ds_name, ___):
agglomerative = AgglomerativeClustering(linkage=linkage,
distance_threshold=0.5, n_clusters=None)
agglomerative.___(X)
fig, axes = plt.subplots(1, 2)
fig.suptitle(ds_name+' Dataset: '+str(linkage)+' linkage')
axes[0].scatter(X[:, 0], X[:,1 ], c=y, cmap='tab20b')
axes[0].set_title('Real clusters')
axes[1].scatter(X[:, 0], X[:, 1], c=agglomerative.labels_, cmap='tab20b')
axes[1].set_title('Clusters with Agglomerative')
# Check clustering quality on moons dataset
X, y = make_moons(n_samples=500)
check_linkage_parameter(X, y, 'Moons', linkage=___)
check_linkage_parameter(X, y, 'Moons', linkage=___)
check_linkage_parameter(X, y, 'Moons', linkage=___)
# Check clustering quality on circles dataset
X, y = make_circles(n_samples=500)
check_linkage_parameter(X, y, 'Circles', linkage='single')
check_linkage_parameter(X, y, 'Circles', linkage='complete')
check_linkage_parameter(X, y, 'Circles', linkage='average')

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt