Cómo calcular la similitud del coseno en Python

La similitud de coseno es una medida de la similitud entre dos vectores de un espacio de producto interno.

Para dos vectores, A y B, la similitud del coseno se calcula como:

Similitud de coseno = ΣA i B i / (√ΣA i 2 √ΣB i 2 )

Este tutorial explica cómo calcular la similitud de coseno entre vectores en Python usando funciones de la biblioteca NumPy .

Similitud de coseno entre dos vectores en Python

El siguiente código muestra cómo calcular la similitud de coseno entre dos matrices en Python:

de numpy import dot
 de numpy. norma de importación de linalg 

#define arrays
 a = [23, 34, 44, 45, 42, 27, 33, 34]
b = [17, 18, 22, 26, 26, 29, 31, 30]

#calcular la similitud del coseno
 cos_sim = punto (a, b) / ( norma (a) * norma (b))

cos_sim

0,965195008357566

La similitud de coseno entre las dos matrices resulta ser 0,965195 .

Tenga en cuenta que este método funcionará en dos matrices de cualquier longitud:

importar numpy como np 
de numpy import dot
 de numpy. norma de importación de linalg 

# definir matrices
 a = np.random.randint (10, tamaño = 100 )
b = np.random.randint (10, tamaño = 100 )

#calcular la similitud del coseno
 cos_sim = punto (a, b) / ( norma (a) * norma (b))

cos_sim

0,7340201613960431

Sin embargo, solo funciona si las dos matrices tienen la misma longitud:

importar numpy como np 
de numpy import dot
 de numpy. norma de importación de linalg 

#define arrays
 a = np.random.randint (10, size = 90 ) # length = 90 
b = np.random.randint (10, size = 100 ) # length = 100

#calcular la similitud del coseno
 cos_sim = punto (a, b) / ( norma (a) * norma (b))

cos_sim

ValueError : formas (90,) y (100,) no alineadas: 90 (dim 0)! = 100 (dim 0)

Notas

1. Hay varias formas de calcular la similitud de coseno usando Python, pero como explica este hilo de Stack Overflow , el método explicado en esta publicación resulta ser el más rápido.

2. Consulte esta página de Wikipedia para obtener más detalles sobre la similitud de coseno.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Un valor atípico es una observación que se encuentra anormalmente alejada de otros valores en un conjunto de datos. Los…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!