我的原始数据很大。关于: 数据=
[[0, 0, 0, ......0]
[0, 0.124, 0, ..0]
.
.
.
[0, 0, 0, 0, 0.174]]
data2 =
[[0, 0, 0, ......0]
[0, 0.74, 0, ..,0]
.
.
.
[0, 0, 0.15, 0, 0]]
data和data2中的10个矩阵的每个矩阵的值均为3687
我想计算每个矩阵的余弦相似度,就像数据中的第一个矩阵计算data2中的第一个矩阵,第二个到最后一个矩阵一样,依此类推,我想获得10X10的相似度得分,我使用sklearn和sklearn .metrics.pairwise以拟合模型并计算余弦相似度:
import numpy as np
from sklearn import manifold
A = np.matrix(cop)
A = 1.-A
model = manifold.TSNE(metric="precomputed")
Y = model.fit_transform(A)
但它显示:
X should be a square distance matrix
我使用简单得多的数据作为试验,并且确实合适。
如何计算余弦相似度并获得10X10的余弦分数?
答案 0 :(得分:0)
问题的确切性质取决于代码中的cop
。您可能必须发布一个完整的错误代码示例,以获得良好的答案。
下面是将cosine_similarity
与TSNE
结合使用的完整示例(带有随机数据):
import numpy as np
from sklearn import manifold
from sklearn.metrics.pairwise import cosine_similarity
data1 = np.random.rand(10,3687)
data2 = np.random.rand(10,3687)
dist = cosine_similarity(data1, data2)
model = manifold.TSNE(metric="precomputed")
Y = model.fit_transform(dist)