Як обчислити подібність косинусів у python
Косинусна подібність є мірою подібності між двома векторами простору внутрішнього добутку.
Для двох векторів, A і B, косинус-подібність обчислюється наступним чином:
Косинус подібності = ΣA i B i / (√ΣA i 2 √ΣB i 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, але, як пояснює цей потік переповнення стека , метод, описаний у цій статті, виявляється найшвидшим.
2. Зверніться доцієї сторінки у Вікіпедії , щоб дізнатися більше про косинусну подібність.