コサイン類似度は各ベクトルの大きさの違いが無視できる場合に有効な評価方法である。2つのベクトルの内積
\begin{align}
A \cdot B = ||A || \ ||B|| \cos \theta
\end{align}
より
\begin{align}
\cos \theta = \frac{A \cdot B}{ ||A || \ ||B || }
\end{align}
import numpy as np
def func(x, y):
normX = np.linalg.norm(x, ord=2)
normY = np.linalg.norm(y, ord=2)
theta = np.dot(x, y) / (normX * normY)
return theta
N = 10
x = [1, 2, 3]
y = [1, 2, 3]
f = func(x, y)
print(f)
コメント