0
私はPySparkで2つのベクトルのコサイン類似度を計算する方法は?
1 - spatial.distance.cosine(xvec, yvec)
のように、PySparkにおける2つのベクトルのコサイン類似度を計算しようとしていますが、scipyのダウンロードはpyspark.ml.linalg.Vectorタイプに未対応のようです。
私はPySparkで2つのベクトルのコサイン類似度を計算する方法は?
1 - spatial.distance.cosine(xvec, yvec)
のように、PySparkにおける2つのベクトルのコサイン類似度を計算しようとしていますが、scipyのダウンロードはpyspark.ml.linalg.Vectorタイプに未対応のようです。
あなたはかなり簡単にこれを計算するdot
とnorm
メソッドを使用することができます。
from pyspark.ml.linalg import Vectors
x = Vectors.dense([1,2,3])
y = Vectors.dense([2,3,5])
1 - x.dot(y)/(x.norm(2)*y.norm(2))
# 0.0028235350472619603
scipyのダウンロードで:
from scipy.spatial.distance import cosine
x = np.array([1,2,3])
y = np.array([2,3,5])
cosine(x, y)
# 0.0028235350472619603
おかげ@Psidomは、それが動作します – Chao