Distancia Manhattan

Escrito por

en

La Distancia Manhattan (Manhattan Distance), también conocida como Distancia Taxicab, Distancia City Block o Distancia L1, es una de las métricas de distancia más utilizadas en Ciencia de Datos y Machine Learning para medir la diferencia entre dos puntos en un espacio multidimensional.

A diferencia de la Distancia Euclidiana, que calcula la distancia en línea recta entre dos puntos, la Distancia Manhattan mide la distancia recorriendo únicamente desplazamientos horizontales y verticales, de forma similar al recorrido que realizaría un taxi por las calles organizadas en cuadrícula de la isla de Manhattan, de donde proviene su nombre.

Esta métrica resulta especialmente útil cuando se trabaja con variables numéricas, espacios de alta dimensionalidad o algoritmos basados en vecinos, como K-Nearest Neighbors (KNN), además de tener aplicaciones en sistemas de recomendación, clustering, detección de anomalías y optimización.

En este artículo se estudian sus fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica en Python.

¿Qué es la Distancia Manhattan?

La Distancia Manhattan es una medida matemática que calcula la distancia entre dos vectores sumando las diferencias absolutas de cada una de sus dimensiones.

Su fórmula es:

$$
D(A,B)=\sum_{i=1}^{n}|A_i-B_i|
$$

donde:

  • \(A_i\) representa el valor de la característica (i) del primer vector.
  • \(B_i\) representa el valor correspondiente del segundo vector.
  • \(n\) es el número total de características.

El resultado siempre es un valor igual o mayor que cero. Cuanto menor sea la distancia, mayor será la similitud entre ambos objetos.

¿Cómo funciona?

La Distancia Manhattan calcula la diferencia absoluta en cada dimensión y posteriormente suma todas ellas.

El procedimiento general consiste en:

  1. Comparar cada característica de ambos vectores.
  2. Calcular la diferencia absoluta en cada dimensión.
  3. Sumar todas las diferencias.
  4. Obtener una distancia total.

A diferencia de otras métricas, no utiliza cuadrados ni raíces cuadradas, lo que simplifica considerablemente su cálculo.

Interpretación de los valores

La Distancia Manhattan toma valores comprendidos entre:

$$
0 \le D < \infty
$$

Su interpretación es sencilla.

ValorInterpretación
0Los vectores son idénticos
Valor pequeñoAlta similitud
Valor elevadoBaja similitud

Al tratarse de una distancia, un valor menor indica una mayor semejanza.

Ejemplo conceptual

Supongamos dos usuarios representados mediante dos características.

Usuario A:

  • Compras: 8
  • Visitas: 12

Usuario B:

  • Compras: 5
  • Visitas: 15

La distancia sería:

$$D = |8-5|+|12-15| = 6$$

La distancia Manhattan entre ambos usuarios es igual a 6.

Ejemplo gráfico

Supongamos dos puntos.

A = (2,3)

B = (6,7)

La distancia Manhattan será:

$$D =|6-2|+|7-3| = 8$$

Mientras que la distancia euclidiana recorrería una línea recta, la Distancia Manhattan representa el recorrido siguiendo únicamente desplazamientos horizontales y verticales.

¿Por qué es importante en los sistemas de recomendación?

En algunos sistemas de recomendación los usuarios o productos se representan mediante vectores de características numéricas. La Distancia Manhattan permite medir cuánto difieren dichos vectores considerando cada característica por separado.

Resulta especialmente útil cuando:

  • Las diferencias individuales entre variables tienen significado.
  • Se trabaja con datos tabulares.
  • Las variables representan cantidades acumuladas.
  • Se utilizan algoritmos KNN para buscar vecinos similares.

En estos escenarios, una menor distancia implica una mayor similitud entre usuarios o elementos.

¿Cuándo utilizar la Distancia Manhattan?

Es recomendable utilizarla cuando:

  • Se trabaja con variables numéricas.
  • Se utilizan algoritmos KNN.
  • Existen valores atípicos moderados.
  • Se desea reducir el efecto de grandes diferencias individuales.
  • Se analizan datos tabulares.
  • Las variables tienen la misma escala o han sido normalizadas.
  • Se desarrollan sistemas de recomendación basados en vecinos.

No suele ser la mejor opción para comparar texto o documentos.

Ventajas y desventajas

VentajasDesventajas
Fácil implementaciónDepende de la escala de las variables
Menor sensibilidad a valores extremos que EuclidianaRequiere normalización cuando las variables tienen unidades diferentes
Muy utilizada en KNNNo captura relaciones lineales
Adecuada para espacios de alta dimensiónPuede perder capacidad discriminativa con muchas variables irrelevantes
Bajo coste computacionalNo considera correlaciones entre variables

Limitaciones

Aunque es una métrica muy utilizada, presenta algunas limitaciones.

  • Es sensible a la escala de las variables.
  • No tiene en cuenta la correlación entre características.
  • No resulta adecuada para texto o datos categóricos sin transformación previa.
  • En espacios muy dispersos puede perder capacidad discriminativa.
  • No captura relaciones complejas entre variables.

Por ello, suele combinarse con procesos de normalización o selección de características.

Distancia Manhattan vs otras medidas

MedidaQué comparaSensible a la magnitudTipo de datos recomendado
Distancia ManhattanDiferencias absolutasVariables numéricas
Distancia EuclidianaDistancia geométricaVariables numéricas
Similitud del CosenoDirección del vectorNoTexto, TF-IDF, Embeddings
Similitud de PearsonRelación linealNoValoraciones
Índice de JaccardElementos compartidosNoDatos binarios

La Distancia Manhattan suele preferirse cuando interesa medir diferencias individuales entre características y se desea reducir el impacto de grandes desviaciones.

Manhattan vs Distancia Euclidiana

Aunque ambas son métricas de distancia, presentan diferencias importantes.

CaracterísticaDistancia ManhattanDistancia Euclidiana
Tipo de normaL1L2
CálculoSuma de diferencias absolutasRaíz cuadrada de la suma de cuadrados
Sensibilidad a valores extremosMenorMayor
Interpretación geométricaRecorrido por cuadrículaLínea recta
Complejidad computacionalMenorMayor

La elección entre ambas depende del problema y de la naturaleza de los datos.

Aplicaciones en Data Science y Machine Learning

La Distancia Manhattan aparece en numerosos ámbitos de la Ciencia de Datos.

Entre sus aplicaciones más habituales destacan:

  • Sistemas de recomendación.
  • K-Nearest Neighbors (KNN).
  • Clustering.
  • Detección de anomalías.
  • Optimización matemática.
  • Visión por computador.
  • Reconocimiento de patrones.
  • Minería de datos.
  • Bioinformática.
  • Sistemas de búsqueda.

Es especialmente útil cuando los datos pueden representarse mediante variables numéricas independientes.

Implementación en Python

Calcular la Distancia Manhattan con SciPy

from scipy.spatial.distance import cityblock

A = [2, 3]
B = [6, 7]

distancia = cityblock(A, B)

print(distancia)

Resultado:

8

Utilizando Scikit-Learn

from sklearn.metrics.pairwise import manhattan_distances
import numpy as np

A = np.array([[2, 3]])
B = np.array([[6, 7]])

distancia = manhattan_distances(A, B)

print(distancia)

Resultado:

[[8.]]

Calcular una matriz de distancias

from sklearn.metrics.pairwise import manhattan_distances
import numpy as np

X = np.array([
    [2, 3],
    [6, 7],
    [5, 2]
])

matriz = manhattan_distances(X)

print(matriz)

Resultado aproximado:

[[0. 8. 4.]
 [8. 0. 6.]
 [4. 6. 0.]]

La matriz contiene la distancia entre todos los pares de observaciones.

Utilizar la Distancia Manhattan en KNN

from sklearn.neighbors import KNeighborsClassifier

modelo = KNeighborsClassifier(
    n_neighbors=5,
    metric="manhattan"
)

modelo.fit(X_train, y_train)

Este enfoque resulta habitual cuando se desea utilizar la norma L1 en lugar de la distancia euclidiana.

Complejidad computacional

Para dos vectores con n características:

  • El cálculo de la Distancia Manhattan tiene una complejidad temporal de O(n).

Cuando se comparan todos los pares de una matriz con m observaciones:

  • La complejidad aproximada es O(m² · n).

Su cálculo es ligeramente más eficiente que el de la Distancia Euclidiana al no requerir operaciones de potenciación ni raíces cuadradas.

Buenas prácticas

Para utilizar correctamente la Distancia Manhattan se recomienda:

  • Normalizar las variables cuando tengan escalas diferentes.
  • Eliminar o tratar valores atípicos antes del cálculo cuando sea necesario.
  • Utilizarla únicamente con variables numéricas.
  • Comparar su rendimiento frente a otras métricas como Euclidiana o Coseno.
  • Reducir la dimensionalidad cuando existan muchas variables irrelevantes.
  • Validar experimentalmente la métrica más adecuada para el problema.
  • Documentar la elección de la métrica dentro del flujo de trabajo.

Conclusión

La Distancia Manhattan es una de las métricas de distancia más utilizadas en Ciencia de Datos y Machine Learning debido a su sencillez, eficiencia e interpretación intuitiva. Al calcular la suma de las diferencias absolutas entre las características de dos observaciones, proporciona una medida robusta para comparar datos numéricos y resulta especialmente útil en algoritmos como KNN, sistemas de recomendación basados en vecinos y técnicas de clustering.

Aunque comparte muchas aplicaciones con la Distancia Euclidiana, su menor sensibilidad a determinadas variaciones y su bajo coste computacional la convierten en una alternativa muy interesante en problemas donde las diferencias individuales entre variables son más relevantes que la distancia geométrica directa. Como ocurre con cualquier medida de distancia, la elección de utilizar Manhattan debe basarse en la naturaleza de los datos y validarse empíricamente para garantizar el mejor rendimiento del modelo.