2017-05-10 4 views
-2

Ich habe zwei Vektoren Form (2400,)Welche Formeingabe und -ausgänge werden für slearn paarweise_abstandsfunktionen erwartet?

ich sie wie folgt kombiniert werden:

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

Combined Form: (2, 2400)

Dann laufe ich

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

(2, 2)

Warum ist das nicht (2, 2400)?

+0

Warum würden Sie erwarten, '(2, 2400)' förmigen Ausgang? Es tut für alle Elems in Mat1 gegen alle in 'Mat2' und nicht gegen die entsprechenden (wenn Sie es falsch verstehen). – Divakar

+0

Die [Dokumentation von pairwise_distances] (http://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.pairwise_distances.html) gibt eindeutig an, dass die Ausgabe die Form "[n_samples, n_samples]" haben wird . Sie haben 2 Samples (2 Zeilen mit je 2400 Spalten), so dass die Ausgabe '[2, 2] 'ist. Was verstehst du da nicht? –

+0

@VivekKumar Ich habe ihre Terminologie nicht verstanden, auf die sich "Probe" bezieht! Vielen Dank. –

Antwort

1

Es gibt Ihnen den Kosinus zwischen zwei Vektoren der Größe 2.400.

So Wesentlichen distance_mat[0, 0] und distance_mat[1, 1] Nullen sind und beide distance_mat[1, 0] und distance_mat[0, 1] sind der Kosinus zwischen den beiden Vektoren der Größe 1 x 2.400.

Wenn Sie elementweise Produkt verwenden wollen:

np.multiply(matrix1, matrix2) 
Verwandte Themen