Hoe cosinusgelijkenis in python te berekenen
Cosinus-overeenkomst is een maatstaf voor de overeenkomst tussen twee vectoren van een inproductruimte.
Voor twee vectoren, A en B, wordt de cosinusovereenkomst als volgt berekend:
Cosinusovereenkomst = ΣA ik B ik / (√ΣA ik 2 √ΣB ik 2 )
In deze tutorial wordt uitgelegd hoe u de cosinusovereenkomst tussen vectoren in Python kunt berekenen met behulp van functies uit de NumPy- bibliotheek.
Cosinus-overeenkomst tussen twee vectoren in Python
De volgende code laat zien hoe je de cosinusovereenkomst tussen twee arrays in Python kunt berekenen:
from numpy import dot from numpy. linalg import norm #define arrays a = [23, 34, 44, 45, 42, 27, 33, 34] b = [17, 18, 22, 26, 26, 29, 31, 30] #calculate Cosine Similarity cos_sim = dot (a, b)/( norm (a)* norm (b)) cos_sim 0.965195008357566
De cosinusovereenkomst tussen de twee tabellen blijkt 0,965195 te zijn.
Merk op dat deze methode werkt op twee arrays van elke lengte:
import numpy as np from numpy import dot from numpy. linalg import norm #define arrays a = np.random.randint(10, size= 100 ) b = np.random.randint(10, size= 100 ) #calculate Cosine Similarity cos_sim = dot (a, b)/( norm (a)* norm (b)) cos_sim 0.7340201613960431
Dit werkt echter alleen als de twee arrays dezelfde lengte hebben:
import numpy as np from numpy import dot from numpy. linalg import norm #define arrays a = np.random.randint(10, size= 90 ) #length=90 b = np.random.randint(10, size= 100 ) #length=100 #calculate Cosine Similarity cos_sim = dot (a, b)/( norm (a)* norm (b)) cos_sim ValueError : shapes (90,) and (100,) not aligned: 90 (dim 0) != 100 (dim 0)
Opmerkingen
1. Er zijn verschillende manieren om cosinusgelijkenis te berekenen met Python, maar zoals deze Stack Overflow-thread uitlegt, blijkt de methode die in dit artikel wordt uitgelegd de snelste.
2. Raadpleegdeze Wikipedia-pagina voor meer informatie over cosinusgelijkenis.