Как вычислить косинусное сходство в матрице? - PullRequest
0 голосов
/ 20 ноября 2018

Мои исходные данные довольно большие.Речь идет о: data =

[[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]]

10 матрица в данных и данных2 каждая матрица имеет значение 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 косинус счет?

1 Ответ

0 голосов
/ 20 ноября 2018

Точная природа вашей проблемы зависит от того, что 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)
...