Как вычислить косинусное сходство в python
Косинусное сходство — это мера сходства между двумя векторами пространства внутреннего продукта.
Для двух векторов A и B косинусное подобие рассчитывается следующим образом:
Косинусное подобие = ΣA я B я / (√ΣA я 2 √ΣB я 2 )
В этом руководстве объясняется, как вычислить косинусное сходство векторов в Python с помощью функций из библиотеки NumPy .
Косинусное сходство между двумя векторами в Python
Следующий код показывает, как вычислить косинусное сходство между двумя массивами в Python:
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
Косинусное сходство между двумя таблицами оказывается равным 0,965195 .
Обратите внимание, что этот метод будет работать с двумя массивами любой длины:
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
Однако это работает только в том случае, если два массива имеют одинаковую длину:
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)
Комментарии
1. Существует несколько способов вычисления сходства косинусов с помощью Python, но, как объясняется в этой теме Stack Overflow , метод, описанный в этой статье, оказывается самым быстрым.
2. Обратитесь кэтой странице Википедии , чтобы узнать больше о сходстве косинусов.