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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *