Jak obliczyć podobieństwo cosinus w pythonie
Podobieństwo cosinusowe jest miarą podobieństwa między dwoma wektorami przestrzeni iloczynu wewnętrznego.
Dla dwóch wektorów A i B podobieństwo cosinus oblicza się w następujący sposób:
Cosinus podobieństwo = ΣA i B i / (√ΣA i 2 √ΣB i 2 )
W tym samouczku wyjaśniono, jak obliczyć podobieństwo cosinus między wektorami w Pythonie przy użyciu funkcji z biblioteki NumPy .
Podobieństwo cosinusowe między dwoma wektorami w Pythonie
Poniższy kod pokazuje, jak obliczyć podobieństwo cosinus między dwiema tablicami w Pythonie:
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
Cosinus podobieństwa między dwiema tabelami wynosi 0,965195 .
Pamiętaj, że ta metoda będzie działać na dwóch tablicach o dowolnej długości:
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
Działa to jednak tylko wtedy, gdy dwie tablice mają tę samą długość:
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)
Uwagi
1. Istnieje kilka sposobów obliczenia podobieństwa cosinus przy użyciu Pythona, ale jak wyjaśniono w tym wątku Stack Overflow , metoda wyjaśniona w tym artykule okazuje się najszybsza.
2. Odwiedźtę stronę Wikipedii, aby dowiedzieć się więcej o podobieństwie cosinusa.