2017-05-10 42 views
-2

我有形狀的兩個矢量(2400)sklearn pairwise_distance函數有什麼形狀輸入和輸出?

我將它們結合起來這樣的:

vecs = [matrix1, matrix2] 
combined_matricies = np.array(vecs) 
print("Combined shape:", combined_matricies.shape) 

組合形狀:(2,2400)

然後我跑

distance_mat = pairwise_distances(combined_matricies, metric="cosine").astype('float64') 
print(distance_mat.shape) 

(2,2)

爲什麼不是這樣(2,2400)?

+0

爲什麼你會想到'(2,2400)'形輸出?它爲mat1中的所有元素做所有'mat2',而不是與相應的元素相對(如果你錯誤的話)。 – Divakar

+0

[pairwise_distances]的文檔(http://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.pairwise_distances.html)明確指出,輸出的形狀是'[n_samples,n_samples]' 。你有2個樣本(2行,每列2400列),所以輸出是'[2,2]'。你有什麼不明白的地方? –

+0

@VivekKumar我不明白他們的術語是什麼「樣本」指的!謝謝。 –

回答

1

它給你兩個大小爲2,400的向量之間的餘弦。

所以基本上distance_mat[0, 0]distance_mat[1, 1]是零和兩個distance_mat[1, 0]distance_mat[0, 1]是大小1×2400的兩個向量之間的餘弦值。

如果你想元素之積用途:

np.multiply(matrix1, matrix2)