Clustering Gerarchico
Una tecnica che cerca di costruire una gerarchia di cluster.
Cos'è il Clustering Gerarchico
Il clustering gerarchico è una tecnica di clustering che cerca di costruire una gerarchia di cluster.
A differenza di altri algoritmi di clustering, il clustering gerarchico non richiede che venga specificato il numero di cluster in anticipo. Esistono due approcci principali al clustering gerarchico: 1. Aglomerativo (Bottom-Up): Inizia trattando ogni punto come un singolo cluster e poi successivamente unisce i cluster più simili fino a formare un unico cluster che contiene tutti i punti.
2. Divisivo (Top-Down): Inizia con un unico cluster contenente tutti i punti e successivamente divide i cluster più grandi fino a quando ogni punto è in un singolo cluster.
L'algoritmo agglomerativo è il più comune e sarà l'oggetto del nostro esempio.
Esempio di Clustering Gerarchico Agglomerativo con Python
Utilizzeremo il dataset generato con `make_blobs` e applicheremo l'algoritmo di clustering agglomerativo.Visualizzeremo i risultati con un grafico.
Generazione del Dataset
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
# Generazione del dataset
X, y = make_blobs(n_samples=330, centers=5, cluster_std=0.8, random_state=42)
# Visualizzazione del dataset
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], s=50, cmap='viridis')
plt.title('Dataset generato')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
Applicazione del Clustering Gerarchico Agglomerativo
from sklearn.cluster import AgglomerativeClustering
# Applicazione del clustering agglomerativo
agg_clustering = AgglomerativeClustering(n_clusters=5)
clusters = agg_clustering.fit_predict(X)
Visualizzazione dei Cluster
# Visualizzazione dei cluster
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=clusters, s=50, cmap='viridis')
plt.title('Clustering Agglomerativo')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()