El clustering jeràrquic és una tècnica de clustering no supervisat que busca construir una jerarquia de clusters. A diferència d'altres mètodes de clustering com K-means, el clustering jeràrquic no requereix especificar el nombre de clusters per avançat. Aquesta tècnica es pot dividir en dos tipus principals: aglomeratiu i divisori.

Tipus de Clustering Jeràrquic

Clustering Jeràrquic Aglomeratiu (HAC)

Aquest és el mètode més comú i funciona de manera ascendent:

  1. Inicialització: Cada punt de dades comença com un cluster individual.
  2. Agrupació: En cada pas, els dos clusters més propers es combinen en un sol cluster.
  3. Finalització: Aquest procés es repeteix fins que tots els punts de dades es troben en un sol cluster o fins que es compleix un criteri de parada específic.

Clustering Jeràrquic Divisori

Aquest mètode funciona de manera descendent:

  1. Inicialització: Tots els punts de dades comencen en un sol cluster.
  2. Divisió: En cada pas, el cluster es divideix en dos subclusters.
  3. Finalització: Aquest procés es repeteix fins que cada punt de dades és un cluster individual o fins que es compleix un criteri de parada específic.

Mètodes de Càlcul de Distàncies entre Clusters

Per determinar quins clusters s'han de combinar o dividir, es poden utilitzar diferents mètodes per calcular la distància entre clusters:

  1. Mètode del Vincle Senzill (Single Linkage): La distància entre dos clusters és la distància mínima entre qualsevol parell de punts (un de cada cluster).
  2. Mètode del Vincle Complet (Complete Linkage): La distància entre dos clusters és la distància màxima entre qualsevol parell de punts (un de cada cluster).
  3. Mètode del Vincle Mitjà (Average Linkage): La distància entre dos clusters és la mitjana de totes les distàncies entre parells de punts (un de cada cluster).
  4. Mètode del Centroid (Centroid Linkage): La distància entre dos clusters és la distància entre els seus centroides.
  5. Mètode de Ward: Aquest mètode minimitza la suma de les variàncies dins de cada cluster.

Implementació Pràctica

Exemple amb Python

A continuació, es mostra un exemple de com implementar el clustering jeràrquic aglomeratiu utilitzant la biblioteca scipy i matplotlib per visualitzar el dendrograma.

import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.datasets import make_blobs

# Generar dades de mostra
X, _ = make_blobs(n_samples=50, centers=3, random_state=42)

# Calcular l'enllaç jeràrquic
Z = linkage(X, method='ward')

# Crear el dendrograma
plt.figure(figsize=(10, 7))
dendrogram(Z)
plt.title('Dendrograma del Clustering Jeràrquic')
plt.xlabel('Índex de les Mostres')
plt.ylabel('Distància')
plt.show()

Explicació del Codi

  1. Generació de Dades: Utilitzem make_blobs de sklearn.datasets per generar un conjunt de dades de mostra amb 50 punts i 3 centres.
  2. Càlcul de l'Enllaç Jeràrquic: Utilitzem la funció linkage de scipy.cluster.hierarchy per calcular l'enllaç jeràrquic utilitzant el mètode de Ward.
  3. Creació del Dendrograma: Utilitzem dendrogram de scipy.cluster.hierarchy per crear i visualitzar el dendrograma.

Exercici Pràctic

Exercici

Implementa un clustering jeràrquic aglomeratiu utilitzant el mètode del vincle complet (complete linkage) amb un conjunt de dades de la teva elecció. Visualitza el dendrograma resultant.

Solució

import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.datasets import make_blobs

# Generar dades de mostra
X, _ = make_blobs(n_samples=50, centers=3, random_state=42)

# Calcular l'enllaç jeràrquic amb el mètode del vincle complet
Z = linkage(X, method='complete')

# Crear el dendrograma
plt.figure(figsize=(10, 7))
dendrogram(Z)
plt.title('Dendrograma del Clustering Jeràrquic (Complete Linkage)')
plt.xlabel('Índex de les Mostres')
plt.ylabel('Distància')
plt.show()

Errors Comuns i Consells

  1. No Normalitzar les Dades: Assegura't de normalitzar o estandarditzar les dades abans d'aplicar el clustering jeràrquic, especialment si les característiques tenen diferents escales.
  2. Interpretació del Dendrograma: La interpretació del dendrograma pot ser subjectiva. És important establir un criteri clar per tallar el dendrograma i determinar el nombre de clusters.
  3. Elecció del Mètode de Vincle: La selecció del mètode de vincle pot afectar significativament els resultats. Prova diferents mètodes i compara els resultats per trobar el més adequat per al teu conjunt de dades.

Conclusió

El clustering jeràrquic és una tècnica poderosa per agrupar dades sense necessitat de conèixer el nombre de clusters per avançat. La seva capacitat per crear una jerarquia de clusters el fa especialment útil per a l'anàlisi exploratòria de dades. En el proper mòdul, explorarem altres tècniques de clustering no supervisat, com l'Anàlisi de Components Principals (PCA).

Curs de Machine Learning

Mòdul 1: Introducció al Machine Learning

Mòdul 2: Fonaments d'Estadística i Probabilitat

Mòdul 3: Preprocessament de Dades

Mòdul 4: Algoritmes de Machine Learning Supervisat

Mòdul 5: Algoritmes de Machine Learning No Supervisat

Mòdul 6: Avaluació i Validació de Models

Mòdul 7: Tècniques Avançades i Optimització

Mòdul 8: Implementació i Desplegament de Models

Mòdul 9: Projectes Pràctics

Mòdul 10: Recursos Addicionals

© Copyright 2024. Tots els drets reservats