Saltar al contenido principal

Comprender la distancia euclidiana: De la teoría a la práctica

Explora cómo la distancia euclidiana tiende puentes entre la geometría antigua y los algoritmos modernos, con ejemplos de codificación en Python y R, y conoce sus aplicaciones en la ciencia de datos, el aprendizaje automático y el análisis espacial.
Actualizado 1 oct 2024  · 8 min de lectura

La distancia euclidiana, un concepto que se remonta a las antiguas matemáticas griegas, se ha convertido en una herramienta esencial en la ciencia de datos moderna, el aprendizaje automático y el análisis espacial. Llamada así por el famoso Euclides, esta métrica proporciona una forma fundamental de medir la distancia en línea recta entre puntos del espacio, ya sea en dos dimensiones o en muchas más.

¿Qué es la distancia euclidiana?

La distancia euclidiana representa el camino más corto entre dos puntos en el espacio euclidiano. Es la distancia que medirías con una regla, ampliada a cualquier número de dimensiones. Este concepto está profundamente arraigado en el teorema de Pitágoras, que afirma que en un triángulo rectángulo, el cuadrado de la longitud de la hipotenusa es igual a la suma de los cuadrados de los otros dos lados.

Filósofo enseñando a los jóvenes la distancia euclidiana

"Filósofo enseñando la distancia euclidiana." Imagen de Dall-E

La fórmula de la distancia euclidiana

Desglosemos la fórmula de la distancia euclidiana para las distintas dimensiones:

Distancia euclidiana 2D

En un plano bidimensional, la distancia euclídea entre los puntos A(x₁, y₁) y B(x₂, y₂) viene dada por:

Fórmula de la distancia euclidiana en un espacio 2D

Por ejemplo, calculemos la distancia entre los puntos A(1, 2) y B(4, 6):

Resolver la fórmula de la distancia euclidiana en dos dimensiones

Visualización de la distancia euclídea 2D

Para comprender mejor la distancia euclídea 2D, vamos a visualizarla:

Distancia euclidiana 2D visualizada

Distancia euclidiana 2D. Imagen del autor

Esta visualización muestra la distancia euclídea entre dos puntos en un plano 2D. La línea roja representa la distancia directa, mientras que las líneas discontinuas forman un triángulo rectángulo, ilustrando el teorema de Pitágoras en acción.

Distancia euclidiana 3D

Ampliando a tres dimensiones, para los puntos A(x₁, y₁, z₁) y B(x₂, y₂, z₂), la fórmula pasa a ser:

Fórmula de la distancia euclidiana en tres dimensiones

Visualización de la distancia euclidiana en 3D

Visualicemos la distancia euclídea 3D:

Distancia euclidiana 3D visualizada

Distancia euclidiana 3D. Imagen del autor

Este gráfico 3D muestra la distancia euclidiana entre dos puntos en el espacio tridimensional. La línea verde discontinua representa la distancia directa entre los puntos.

Distancia euclidiana n-dimensional

En un espacio de n dimensiones, la distancia euclídea entre los puntos A(a₁, a₂, ..., aₙ) y B(b₁, b₂, ..., bₙ) es:

Fórmula de la distancia euclidiana en un espacio n-dimensional

Esto se puede escribir de forma más concisa utilizando la notación sumatoria:

Fórmula de la distancia euclídea en un espacio n-dimensional utilizando la notación sumatoria

Relación con los conceptos de álgebra lineal

Comprender la distancia euclidiana va más allá de saber medir el camino más corto entre dos puntos. También se trata de ver estas distancias a través de la lente del álgebra lineal, un campo que nos ayuda a describir y resolver problemas sobre el espacio y las dimensiones utilizando vectores y sus propiedades. Para profundizar en este tema, explora el curso Álgebra Lineal para la Ciencia de Datos en R, que cubre estos conceptos de forma exhaustiva.

La distancia euclídea como norma vectorial

La distancia euclidiana mide la distancia entre dos puntos en el espacio. Imagina que tienes dos puntos, uno al inicio de una ruta de senderismo y otro en la cima de una colina. El camino en línea recta que recorrerías desde el inicio hasta la cima puede considerarse como la distancia euclidiana. En álgebra lineal, esto es como encontrar la longitud de una flecha (o vector) que apunta directamente desde el principio del sendero (punto A) hasta la cima de la colina (punto B). Esta longitud se denomina "norma" del vector, y no es más que un término elegante para referirse a la longitud de esta trayectoria rectilínea.

Producto punto y coseno del ángulo

Cuando tratamos con direcciones, el producto punto nos ayuda a comprender el ángulo entre dos flechas cualesquiera. Por ejemplo, si estás en la intersección de dos carreteras, el producto punto te diría cuánto apunta una carretera hacia la otra. Se calcula utilizando las longitudes de cada carretera (como las normas de las que hemos hablado) y el ángulo entre ellas. Cuanto más se acerque este valor a 0, más se aproximarán las carreteras a ser perpendiculares entre sí. Cuando relacionas esto con la distancia, la fórmula del producto punto ayuda a descomponer la distancia euclidiana en componentes más fáciles de manejar, mostrando cómo los cambios de dirección afectan a la distancia total.

Distancia euclidiana y sustracción de vectores

Para hallar la distancia euclídea entre dos puntos utilizando vectores, básicamente restas un punto de otro para crear un nuevo vector. Este nuevo vector apunta directamente de un punto a otro y su longitud es la distancia euclídea que te interesa. Es como trazar una ruta directa en un mapa desde tu casa a la tienda de comestibles más cercana restando sus coordenadas; esto te da una línea recta (o vector) que muestra el camino más corto que puedes tomar.

Calcular la distancia euclídea en Python y R

Vamos a explorar implementaciones de cálculos de distancias euclídeas utilizando tanto Python como R. Examinaremos cómo crear funciones personalizadas y utilizar bibliotecas incorporadas para mejorar la eficiencia.

Ejemplo en Python

En Python, podemos aprovechar la potencia de NumPy para operaciones eficientes con matrices y de SciPy para cálculos especializados de distancias. He aquí cómo podemos aplicar la distancia euclidiana:

import numpy as np
from scipy.spatial.distance import euclidean
def euclidean_distance(point1, point2):
    return np.sqrt(np.sum((np.array(point1) - np.array(point2))**2))

# 2D example
point_a = (1, 2)
point_b = (4, 6)
distance_2d = euclidean_distance(point_a, point_b)
print(f"2D Euclidean distance: {distance_2d:.2f}")

# 3D example
point_c = (1, 2, 3)
point_d = (4, 6, 8)
distance_3d = euclidean_distance(point_c, point_d)
print(f"3D Euclidean distance: {distance_3d:.2f}")

# Using SciPy for efficiency
distance_scipy = euclidean(point_c, point_d)
print(f"3D Euclidean distance (SciPy): {distance_scipy:.2f}")

Cuando ejecutemos este código, esperamos ver una salida similar a: 

2D Euclidean distance: 5.00
3D Euclidean distance: 7.07
3D Euclidean distance (SciPy): 7.07

En general, la función SciPy es más rápida y está más optimizada, especialmente para datos de alta dimensión, pero nuestra función personalizada ayuda a ilustrar el cálculo subyacente.

Conviértete en un Científico ML

Domina las habilidades de Python para convertirte en un científico del aprendizaje automático
Empieza a aprender gratis

R ejemplo

R proporciona varias formas de calcular la distancia euclídea. Crearemos una función personalizada y la compararemos con la función dist() de la biblioteca stats.

euclidean_distance <- function(point1, point2) {
  sqrt(sum((point1 - point2)^2))
}

# 2D example
point_a <- c(1, 2)
point_b <- c(4, 6)
distance_2d <- euclidean_distance(point_a, point_b)
print(paste("2D Euclidean distance:", round(distance_2d, 2)))

# 3D example
point_c <- c(1, 2, 3)
point_d <- c(4, 6, 8)
distance_3d <- euclidean_distance(point_c, point_d)
print(paste("3D Euclidean distance:", round(distance_3d, 2)))

# Using the dist() function from stats
distance_builtin <- stats::dist(rbind(point_c, point_d), method = "euclidean")
print(paste("3D Euclidean distance (built-in):", round(as.numeric(distance_builtin), 2)))

La ejecución de este código R debería producir resultados como

[1] "2D Euclidean distance: 5"
[1] "3D Euclidean distance: 7.07"
[1] "3D Euclidean distance (built-in): 7.07"

Nuestra función personalizada euclidean_distance utiliza las operaciones vectorizadas de R, lo que la hace concisa y eficaz. La función dist() de stats devuelve el mismo resultado, validando nuestra función personalizada. Ambos métodos devuelven una matriz.

Aplicaciones de la distancia euclídea

La distancia euclidiana es una forma sencilla de medir la distancia entre las cosas. Se utiliza en diversos ámbitos para resolver problemas relacionados con el espacio y la distancia.

K-vecinos más próximos (KNN)

En el algoritmo k-vecinos más próximos, la distancia euclídea ayuda a encontrar los vecinos más próximos a un punto. Esto ayuda a decidir cómo clasificar los nuevos datos, como decidir si un correo electrónico es spam basándose en el aspecto de correos similares, o recomendar productos similares a los que ya le gustan a un cliente.

Agrupación de K-means

En la agrupación de k-means, la distancia euclídea ayuda a clasificar los puntos de datos en grupos, conectando cada punto con el centro más cercano de un grupo. Esto ayuda a organizar los datos en categorías que comparten similitudes, útil en la segmentación de clientes o durante la investigación para agrupar temas similares.

Escalado multidimensional (MDS)

El escalado multidimensional utiliza la distancia euclidiana para simplificar datos complejos en algo más fácil de visualizar y comprender. Toma datos que suelen tener muchos detalles (dimensiones) y los reduce para que sea más sencillo mirarlos y analizarlos, ayudando a detectar tendencias y pautas con mayor claridad.

Tratamiento de imágenes

En tareas como la detección de bordes en imágenes o el reconocimiento de objetos, la distancia euclidiana mide cuánto cambian los colores de los píxeles, lo que ayuda a delinear objetos o a identificar características importantes en una imagen. Esto es útil en cosas como las imágenes médicas para identificar enfermedades, o en los sistemas de seguridad para reconocer caras u objetos.

Robótica

Para los robots, como los drones o los coches autodirigidos, la distancia euclidiana ayuda a calcular la ruta más sencilla de un punto a otro. Esto ayuda a los robots y otros sistemas automatizados a moverse con eficacia y seguridad, evitando obstáculos y calculando las rutas más fáciles hacia sus destinos.

Comparación con otras métricas de distancia

La distancia euclidiana es una de las muchas formas de medir la distancia entre puntos, pero las distintas situaciones requieren métodos diferentes. He aquí cómo se compara con otras métricas de distancia habituales:

Distancia a Manhattan

También conocida como distancia "manzana", la distancia Manhattan mide la suma total de las diferencias absolutas a lo largo de cada dimensión. Imagina que caminas por las calles cuadriculadas de una ciudad; la distancia que recorrerías bloque a bloque es tu distancia de Manhattan. Este método es especialmente útil en entornos que imitan una cuadrícula, como la navegación por las calles de una ciudad o en algunos tipos de juegos. También es útil cuando tratas con datos de muy alta dimensión, en los que la distancia euclidiana puede resultar menos fiable. Para saber más, consulta nuestro tutorial sobre la distancia a Manhattan.

Distancia coseno

La distancia coseno considera el ángulo entre dos puntos o vectores. En lugar de centrarte en la longitud de la línea que las separa, considera cómo están orientadas entre sí. Esto lo hace especialmente útil en campos como el análisis de textos o los sistemas de recomendación, donde la dirección de los datos (como el recuento de palabras en los artículos o las preferencias de los usuarios) importa más que la magnitud (cuánto). Para comprenderlo mejor, consulta nuestro artículo sobre la distancia coseno.

Distancia de Chebyshev

La distancia de Chebyshev es otra forma de medir la distancia, centrándose en la mayor diferencia a lo largo de cualquier dimensión. Es como jugar al ajedrez: el rey se desplaza a la casilla que esté más alejada en el mínimo número de movimientos, independientemente de que sea horizontal, vertical o diagonal. Esta métrica es especialmente útil en situaciones en las que necesitas considerar sólo la más significativa de las múltiples diferencias. Aprende más leyendo nuestro tutorial sobre la distancia de Chebyshev.

Limitaciones de la distancia euclidiana

Aunque la distancia euclidiana se utiliza mucho debido a su naturaleza intuitiva y su cálculo sencillo, tiene algunas limitaciones notables. Comprenderlos puede ayudar a elegir la medida de distancia adecuada o a ajustar los datos para mitigar estos problemas.

Sensibilidad de la escala

La distancia euclidiana puede verse desproporcionadamente afectada por la escala de los rasgos. Por ejemplo, en un conjunto de datos que contenga la renta y la edad, la renta suele abarcar un intervalo mucho mayor (quizá miles o decenas de miles) que la edad (que suele oscilar sólo hasta unos 100). Esta disparidad puede hacer que los ingresos desborden el cálculo de la distancia, sesgando los resultados hacia su escala.

Mitigación: Normalizar o estandarizar los datos puede ayudar a equilibrar las escalas de los distintos rasgos, garantizando que ningún rasgo influya indebidamente en el cálculo de la distancia.

La maldición de la dimensionalidad

La maldición de la dimensionalidad se refiere a varios fenómenos que surgen al aumentar el número de dimensiones de un conjunto de datos. Una de ellas es que el concepto de "proximidad" o "distancia" pierde sentido: las distancias tienden a converger, lo que dificulta distinguir eficazmente entre puntos cercanos y lejanos.

Mitigación: Técnicas como el análisis de componentes principales(ACP) o la incrustación estocástica de vecinos t-distribuida(t-SNE) reducen la dimensionalidad de los datos. Estos métodos ayudan a destilar los rasgos esenciales con mayor varianza, lo que puede ayudar a simplificar los datos.

Sensibilidad a los valores atípicos

Los cálculos de la distancia euclidiana también pueden verse muy influidos por los valores atípicos. En espacios de alta dimensión, un solo valor atípico puede alterar drásticamente las distancias, haciendo que algunos puntos de datos parezcan mucho más similares o diferentes de lo que realmente son. 

De hecho, la sensibilidad de la regresión lineal a los valores atípicos está relacionada con el concepto de distancia euclidiana. Esto se debe a que, en la regresión lineal, el modelo minimiza la suma de los residuos al cuadrado, que son las diferencias entre los valores observados y los predichos. Haciendo esto se mide esencialmente la distancia euclidiana entre los puntos de datos observados y la recta de regresión. Los valores atípicos pueden afectar desproporcionadamente a esta distancia, porque el cuadrado de las desviaciones mayores aumenta más rápidamente que el de las menores. 

Mitigación: Utilizar métricas más robustas que sean menos sensibles a los valores atípicos puede ayudar, como la distancia Manhattan para ciertos tipos de datos. Además, preprocesar los datos para identificar y tratar los valores atípicos -ajustándolos o eliminándolos- puede evitar que sesguen los cálculos de distancia.

Enfoque alternativo: Considerar la distancia euclidiana ponderada es otra estrategia. Esta variación de la distancia euclidiana asigna pesos diferentes a las distintas dimensiones o características, lo que puede reducir la ponderación de las más propensas a los valores atípicos o al ruido.

Conclusión

Como hemos visto, la distancia euclídea es una métrica fundamental en muchos campos analíticos y tecnológicos, ya que proporciona una forma sencilla de medir la distancia en línea recta entre puntos. Comprender y utilizar la distancia euclidiana puede mejorar la precisión y eficacia de muchas aplicaciones, desde los algoritmos de aprendizaje automático hasta el análisis espacial.

Te animo a que experimentes con la distancia euclidiana en tus proyectos y explores más oportunidades de aprendizaje a través de cursos como Diseño de flujos de trabajo de aprendizaje automático en Python y el Curso de detección de anomalías en Python.

Conviértete en un Científico ML

Mejora tus conocimientos de Python para convertirte en un científico del aprendizaje automático.

Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Como profesional experto en Ciencia de Datos, Aprendizaje Automático e IA Generativa, Vinod se dedica a compartir conocimientos y a capacitar a los aspirantes a científicos de datos para que tengan éxito en este dinámico campo.

Preguntas frecuentes sobre la distancia euclidiana

¿Por qué es importante la distancia euclídea en el aprendizaje automático?

La distancia euclidiana ayuda en varios algoritmos de aprendizaje automático cuantificando lo similares o diferentes que son los puntos de datos, lo que es importante para tareas como la clasificación, la agrupación y la detección de anomalías.

¿Es siempre la distancia euclidiana la mejor opción para medir distancias en la ciencia de datos?

No siempre. La mejor métrica de distancia depende del tipo de datos y del problema concreto. Por ejemplo, la distancia Manhattan podría ser más adecuada para datos de alta dimensión o situaciones en las que el movimiento en forma de cuadrícula es más representativo.

¿Cómo trata la distancia euclidiana las coordenadas negativas?

La distancia euclidiana mide la diferencia absoluta entre coordenadas correspondientes, tratando todas las coordenadas por igual, sean positivas o negativas.

¿Puede utilizarse la distancia euclidiana con datos categóricos?

No, la distancia euclidiana suele requerir una entrada numérica para calcular las distancias. Para los datos categóricos se utilizan métodos alternativos como la distancia de Hamming u otras medidas de similitud personalizadas.

¿Cómo influye la elección de la distancia euclidiana en el rendimiento de los algoritmos de agrupación como k-means?

El uso de la distancia euclidiana en algoritmos de agrupación como K-means influye directamente en cómo se forman los conglomerados, ya que determina las propiedades geométricas de éstos. La distancia euclidiana tiende a formar conglomerados esféricos, donde la media sirve como centro del conglomerado. Esto puede afectar al rendimiento de la agrupación, sobre todo cuando las agrupaciones naturales de los datos no son esféricas.

Temas
Relacionado

blog

La maldición de la dimensionalidad en el aprendizaje automático: Retos, repercusiones y soluciones

Explore la maldición de la dimensionalidad en el análisis de datos y el aprendizaje automático, incluidos sus retos, efectos en los algoritmos y técnicas como PCA, LDA y t-SNE para combatirla.
Abid Ali Awan's photo

Abid Ali Awan

7 min

tutorial

Introducción al t-SNE

Aprende a visualizar datos de alta dimensión en un espacio de baja dimensión utilizando una técnica de reducción no lineal de la dimensionalidad.
Abid Ali Awan's photo

Abid Ali Awan

14 min

tutorial

Tutorial del Optimizador Adam: Intuición e implementación en Python

Comprender y aplicar el optimizador Adam en Python. Aprende la intuición, las matemáticas y las aplicaciones prácticas del aprendizaje automático con PyTorch
Bex Tuychiev's photo

Bex Tuychiev

14 min

tutorial

21 herramientas esenciales de Python

Conozca las herramientas esenciales de Python para el desarrollo de software, raspado y desarrollo web, análisis y visualización de datos y aprendizaje automático.
Abid Ali Awan's photo

Abid Ali Awan

6 min

tutorial

Comprender la deriva de los datos y la deriva de los modelos: Detección de deriva en Python

Navegue por los peligros de la deriva de modelos y explore nuestra guía práctica para la supervisión de la deriva de datos.
Moez Ali's photo

Moez Ali

9 min

tutorial

Clasificación K vecinos más próximos (KNN) con scikit-learn

Este artículo trata de cómo y cuándo utilizar la clasificación k vecinos más próximos con scikit-learn. Centrado en conceptos, flujo de trabajo y ejemplos. También cubrimos las métricas de distancia y cómo seleccionar el mejor valor para k mediante validación cruzada.
Adam Shafi's photo

Adam Shafi

14 min

Ver másVer más