Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Aprendizaje no supervisado, Unidad 3 — Clustering: agrupar datos, 3.1 — Qué es agrupar ·

Similitud y distancia

Similitud y distancia: Claves para agrupar datos

Introducción

En el aprendizaje no supervisado, especialmente en clustering, la capacidad de entender y calcular similitud y distancia es fundamental. Estos conceptos nos permiten categorizar y organizar datos en grupos coherentes basados en sus características. La elección adecuada de métricas de similitud y distancia puede marcar la diferencia entre un análisis fallido y uno exitoso. En este artículo, exploraremos cómo calcular y interpretar similitud y distancia, así como los errores comunes a evitar durante el proceso.

Explicación principal con ejemplos

Similitud y distancia en clustering

El objetivo del clustering es agrupar datos similares entre sí y separar los que son diferentes. Para lograr esto, necesitamos definir una medida de similitud o distancia entre los puntos de datos. La elección adecuada de métrica puede influir significativamente en la calidad del agrupamiento.

Ejemplo con k-means

Consideremos un conjunto de datos bidimensional compuesto por dos características: X e Y. Vamos a calcular las distancias euclidianas entre los puntos para determinar sus similitudes:

import numpy as np

# Datos ejemplo
data = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])

def euclidean_distance(x, y):
    return np.sqrt(np.sum((x - y) ** 2))

distances = []
for i in range(len(data)):
    for j in range(i + 1, len(data)):
        distance = euclidean_distance(data[i], data[j])
        distances.append((i, j, distance))
        
print(distances)

En este ejemplo, usamos la distancia euclidiana para medir la similitud entre los puntos. Sin embargo, es importante entender que esta métrica no siempre es adecuada en todos los casos. Por ejemplo, si los datos están en una escala de valores muy diferente (una característica puede ser medida en metros y otra en kilómetros), la distancia euclidiana puede resultar engañosa.

Métricas comunes

  1. Distancia euclidiana: Ideal para datos con características continuas.
  2. Métrica de Manhattan (distancia L1): Similar a la euclidiana pero más robusta ante valores extremos.
  3. Jaccard (para conjuntos discretos): Utilizada en análisis de texto y patrones binarios.

Errores típicos / trampas

Trampa 1: No normalizar datos

Sin normalizar los datos, algunas características pueden dominar la distancia total debido a su escala. Por ejemplo:

data_unscaled = np.array([[100, 2], [3, 400], [500, 6]])
distances_unscaled = []

for i in range(len(data_unscaled)):
    for j in range(i + 1, len(data_unscaled)):
        distance = euclidean_distance(data_unscaled[i], data_unscaled[j])
        distances_unscaled.append((i, j, distance))
        
print(distances_unscaled)

En este ejemplo, la característica con valor alto (500) tiene un impacto mucho mayor en las distancias.

Trampa 2: Ignorar similitud entre variables

Asegúrate de considerar todas las características relevantes. Un dato con una característica alta y otra baja puede parecer más similar a otro con ambas bajas si no se evalúa correctamente.

Trampa 3: Usar la misma métrica para datos categóricos y continuos

Las métricas diseñadas para conjuntos discretos (como Jaccard) pueden no aplicarse adecuadamente a variables numéricas. Al contrario, las métricas de distancia euclidiana o Manhattan pueden resultar en resultados erróneos si se aplica a datos categóricos.

Checklist accionable

  1. Normaliza tus datos: Asegúrate de que todas las características estén en la misma escala.
  2. Selecciona la métrica adecuada: Considera el tipo de datos y la naturaleza del problema.
  3. Evalúa varias métricas: Prueba diferentes métodos para asegurarte de seleccionar el más efectivo.
  4. Visualiza los resultados: Representa gráficamente los grupos para detectar posibles errores en la agrupación.
  5. Valida manualmente: Analiza manualmente algunos datos representativos para verificar que los clusters se comportan como esperas.

Cierre: Siguientes pasos

Pasos siguientes

  1. Explora más métricas de distancia: Aprende sobre métricas adicionales como la Hausdorff o la cosine similarity.
  2. Practica con diferentes conjuntos de datos: Aplica tus conocimientos a problemas reales para mejorar tu capacidad en el clustering.
  3. Participa en competencias de Kaggle: Participa en desafíos relacionados con clustering para ganar experiencia práctica.

En resumen, la comprensión y aplicación correcta de similitud y distancia es crucial para obtener resultados efectivos en clustering. Siguiendo estos consejos y aprendiendo a identificar y evitar errores comunes, podrás mejorar significativamente tus habilidades en este aspecto del aprendizaje no supervisado.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).