平均向量的余弦相似度是否与余弦相似度的平均值相同?
Is the cosine similarity of the average vector same as the average of the cosine similarities?
我有一个向量 v
,我想将其与一组向量 U = [u1, u2, u3 ...]
进行比较。
我想找到 v
与 U
.
中所有向量的平均余弦相似度
我的第一个想法是计算:
s1 = cosine_similarity(v, u1)
s2 = cosine_similarity(v, u2)
...
然后取平均值为
s = np.mean([s1, s2, s3 ...])
但是我想知道这个过程是不是和只取U的平均值得到一个向量u然后计算是一样的
u = np.mean(U)
s = cosine_similarity(x, u)
两种情况下的结果一样吗?
你可以举一个简单的例子,看看结果是否相同。简答,没有。
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
x1 = np.random.rand(1, 100)
x2 = np.random.rand(1, 100)
y = np.random.rand(1, 100)
print(cosine_similarity(x1, y) + cosine_similarity(x2, y))
m = x1+x2
print(cosine_similarity(m, y))
我有一个向量 v
,我想将其与一组向量 U = [u1, u2, u3 ...]
进行比较。
我想找到 v
与 U
.
我的第一个想法是计算:
s1 = cosine_similarity(v, u1)
s2 = cosine_similarity(v, u2)
...
然后取平均值为
s = np.mean([s1, s2, s3 ...])
但是我想知道这个过程是不是和只取U的平均值得到一个向量u然后计算是一样的
u = np.mean(U)
s = cosine_similarity(x, u)
两种情况下的结果一样吗?
你可以举一个简单的例子,看看结果是否相同。简答,没有。
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
x1 = np.random.rand(1, 100)
x2 = np.random.rand(1, 100)
y = np.random.rand(1, 100)
print(cosine_similarity(x1, y) + cosine_similarity(x2, y))
m = x1+x2
print(cosine_similarity(m, y))