La Similitud de Pearson, basada en el Coeficiente de Correlación de Pearson, es una de las medidas de similitud más utilizadas en los sistemas de recomendación, especialmente en los enfoques de Filtrado Colaborativo (Collaborative Filtering). A diferencia de otras métricas que comparan directamente los valores de dos vectores, la similitud de Pearson evalúa la relación lineal entre ellos, teniendo en cuenta cómo varían respecto a su propia media.
Esta característica permite identificar usuarios o elementos que presentan patrones de comportamiento similares, incluso cuando utilizan escalas de valoración diferentes. Por ejemplo, un usuario puede puntuar habitualmente entre 4 y 5 estrellas, mientras que otro utiliza con mayor frecuencia valores entre 2 y 3. Aunque sus puntuaciones absolutas sean distintas, ambos pueden mostrar preferencias muy similares. La correlación de Pearson es capaz de detectar esta relación.
En este artículo se analizan los fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica de la Similitud de Pearson en Python.
¿Qué es la Similitud de Pearson?
La Similitud de Pearson es una medida estadística que cuantifica el grado de relación lineal entre dos conjuntos de valores.
En sistemas de recomendación se utiliza para comparar:
- Usuarios.
- Productos.
- Películas.
- Libros.
- Canciones.
- Cualquier elemento representado mediante un conjunto de valoraciones.
Su cálculo se basa en el Coeficiente de Correlación de Pearson, definido por la siguiente expresión:
$$
r=
\frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}
{\sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2}
\sqrt{\sum_{i=1}^{n}(y_i-\bar{y})^2}}
$$
donde:
- \(x_i\) representa los valores del primer vector.
- \(y_i\) representa los valores del segundo vector.
- \(\bar{x}[latex] y [latex]\bar{y}\) son las medias de ambos vectores.
El resultado indica el grado de asociación lineal entre ambos conjuntos de datos.

¿Cómo funciona?
La Similitud de Pearson no compara directamente las puntuaciones, sino el comportamiento relativo de cada usuario o elemento respecto a su propia media.
El proceso general consiste en:
- Calcular la media de cada vector.
- Restar la media a cada valor.
- Calcular el producto entre ambas desviaciones.
- Normalizar mediante las desviaciones estándar.
- Obtener una puntuación comprendida entre -1 y 1.
Este enfoque permite eliminar el efecto de las diferencias individuales de escala.
Interpretación de los valores
El coeficiente de Pearson siempre se encuentra dentro del intervalo:
$$
-1 \le r \le 1
$$
La interpretación es la siguiente.
| Valor | Interpretación |
|---|---|
| 1 | Correlación positiva perfecta |
| 0.8 a 1 | Muy alta similitud |
| 0.5 a 0.8 | Similitud moderada |
| 0 | Sin relación lineal |
| -0.5 a 0 | Relación negativa moderada |
| -1 | Correlación negativa perfecta |
En sistemas de recomendación normalmente interesan las correlaciones positivas elevadas.
Ejemplo conceptual
Supongamos dos usuarios que valoran varias películas.
| Película | Usuario A | Usuario B |
|---|---|---|
| Acción | 5 | 3 |
| Drama | 4 | 2 |
| Ciencia ficción | 5 | 3 |
| Comedia | 2 | 1 |
Aunque el Usuario B puntúa sistemáticamente dos estrellas menos, ambos muestran exactamente el mismo patrón de preferencias.
La Similitud de Pearson detectará una correlación muy próxima a 1, mientras que otras métricas basadas únicamente en las diferencias absolutas podrían considerar que ambos usuarios son menos similares.
Diferencia respecto a la Similitud del Coseno
Aunque ambas métricas comparan vectores, presentan diferencias importantes.
- La Similitud del Coseno compara la dirección de los vectores.
- La Similitud de Pearson compara cómo varían los valores respecto a sus medias.
Esto hace que Pearson resulte más adecuada cuando distintos usuarios utilizan escalas de valoración diferentes.
¿Por qué es importante en los sistemas de recomendación?
En muchos sistemas de recomendación, cada usuario posee un estilo propio al asignar puntuaciones.
Por ejemplo:
| Usuario | Escala habitual |
|---|---|
| Usuario A | 4–5 estrellas |
| Usuario B | 2–3 estrellas |
Aunque ambos disfruten exactamente de las mismas películas, sus puntuaciones absolutas serán distintas.
La Similitud de Pearson elimina este sesgo individual y permite identificar patrones de preferencia similares.
Por esta razón, ha sido una de las métricas clásicas del Filtrado Colaborativo Basado en Usuarios (User-Based Collaborative Filtering).
Beneficios
La Similitud de Pearson ofrece numerosas ventajas.
- Tiene en cuenta las diferencias individuales de escala.
- Detecta patrones de comportamiento similares.
- Reduce el efecto del sesgo en las valoraciones.
- Produce resultados fácilmente interpretables.
- Funciona especialmente bien con datos de puntuaciones.
- Es ampliamente utilizada en sistemas de recomendación clásicos.
- Se encuentra implementada en numerosas bibliotecas de Machine Learning.
¿Cuándo utilizar la Similitud de Pearson?
Es recomendable utilizarla cuando:
- Se comparan usuarios mediante puntuaciones.
- Existen diferencias en la escala utilizada por cada usuario.
- Se desarrollan sistemas de Filtrado Colaborativo.
- Se analizan relaciones lineales entre variables.
- Se trabaja con matrices Usuario-Ítem.
- Se desea identificar usuarios con gustos similares.
No suele ser la mejor opción para datos binarios o representaciones TF-IDF.
Ventajas y desventajas
| Ventajas | Desventajas |
|---|---|
| Elimina el efecto de la escala individual | Solo detecta relaciones lineales |
| Muy adecuada para valoraciones | Sensible a valores atípicos |
| Fácil interpretación | Requiere suficientes elementos comunes |
| Muy utilizada en Filtrado Colaborativo | No funciona bien con datos muy dispersos |
| Compensa diferencias entre usuarios | Puede ser inestable con pocas observaciones |
Limitaciones
Aunque es una métrica muy potente, presenta ciertas limitaciones.
- Solo detecta relaciones lineales.
- Puede verse afectada por valores extremos.
- Requiere que ambos usuarios hayan valorado suficientes elementos comunes.
- Resulta poco fiable cuando existen muy pocas coincidencias.
- No es adecuada para datos binarios.
- En matrices muy dispersas puede producir correlaciones poco representativas.
En aplicaciones modernas suele combinarse con técnicas adicionales de ponderación o con modelos basados en factorización matricial.
Similitud de Pearson vs otras medidas
| Medida | Qué compara | Considera la media | Tipo de datos recomendado |
|---|---|---|---|
| Similitud de Pearson | Relación lineal | Sí | Valoraciones |
| Similitud del Coseno | Dirección de los vectores | No | Texto, TF-IDF, Embeddings |
| Índice de Jaccard | Elementos compartidos | No | Datos binarios |
| Distancia Euclidiana | Distancia geométrica | No | Variables numéricas |
| Distancia Manhattan | Diferencias absolutas | No | Variables numéricas |
La elección depende del tipo de datos y del problema a resolver.
Aplicaciones en Data Science y Machine Learning
La Similitud de Pearson tiene aplicaciones en numerosos ámbitos.
Entre las más habituales destacan:
- Sistemas de recomendación.
- Filtrado colaborativo basado en usuarios.
- Filtrado colaborativo basado en elementos.
- Análisis de preferencias.
- Minería de datos.
- Análisis exploratorio de datos.
- Estadística.
- Análisis financiero.
- Bioinformática.
- Ciencias sociales.
- Psicometría.
Su principal aplicación sigue siendo la comparación de perfiles de usuarios mediante puntuaciones.
Implementación en Python
Calcular la correlación entre dos usuarios
import pandas as pd
usuario_a = pd.Series([5, 4, 5, 2])
usuario_b = pd.Series([3, 2, 3, 1])
correlacion = usuario_a.corr(usuario_b)
print(correlacion)
Resultado:
1.0Utilizando NumPy
import numpy as np
usuario_a = np.array([5, 4, 5, 2])
usuario_b = np.array([3, 2, 3, 1])
correlacion = np.corrcoef(
usuario_a,
usuario_b
)[0, 1]
print(correlacion)
Calcular la matriz de correlación
import pandas as pd
ratings = pd.DataFrame({
"Usuario_A": [5, 4, 5, 2],
"Usuario_B": [3, 2, 3, 1],
"Usuario_C": [1, 5, 2, 4]
})
matriz = ratings.corr(method="pearson")
print(matriz)
Resultado aproximado:
Usuario_A Usuario_B Usuario_C
Usuario_A 1.000 1.000 -0.77
Usuario_B 1.000 1.000 -0.77
Usuario_C -0.770 -0.770 1.00Esta matriz constituye la base de muchos algoritmos de recomendación basados en usuarios.
Encontrar los usuarios más similares
usuario = "Usuario_A"
similares = (
matriz[usuario]
.sort_values(ascending=False)
)
print(similares)
Este procedimiento permite identificar rápidamente los usuarios con patrones de valoración más parecidos.
Complejidad computacional
El cálculo de la Similitud de Pearson depende del número de observaciones compartidas.
Para dos vectores con n elementos comunes:
- El cálculo de una correlación tiene una complejidad aproximada de O(n).
Cuando se desea calcular la similitud entre todos los usuarios de una matriz:
- La complejidad puede aproximarse a O(m² · n),
donde:
- m representa el número de usuarios.
- n el número medio de elementos valorados.
En conjuntos de datos muy grandes suelen emplearse técnicas de reducción de dimensionalidad o aproximación de vecinos para reducir el coste computacional.
Buenas prácticas
Para utilizar correctamente la Similitud de Pearson se recomienda:
- Comparar únicamente usuarios con suficientes valoraciones en común.
- Eliminar valores atípicos cuando sea posible.
- Utilizar matrices de valoraciones limpias y consistentes.
- Complementar la correlación con un número mínimo de coincidencias.
- Evaluar otras medidas de similitud para comparar resultados.
- Validar experimentalmente el rendimiento del recomendador.
Conclusión
La Similitud de Pearson es una de las medidas más utilizadas para comparar usuarios y elementos en sistemas de recomendación basados en Filtrado Colaborativo. Al centrarse en la relación lineal entre las valoraciones y no en sus valores absolutos, permite identificar patrones de preferencias similares incluso cuando los usuarios utilizan escalas de puntuación diferentes.
Su facilidad de interpretación, su sólida base estadística y su amplia disponibilidad en bibliotecas como Pandas y NumPy la convierten en una herramienta muy valiosa para construir sistemas de recomendación clásicos. No obstante, su eficacia depende de disponer de suficientes valoraciones compartidas y de comprender sus limitaciones frente a datos dispersos o relaciones no lineales. Elegir la medida de similitud adecuada y validarla sobre el problema concreto sigue siendo un paso fundamental para desarrollar recomendadores precisos y robustos.





