ich eine 2D numpy Array haben, der so aussieht,eine COO-Matrix aus einem Array numpy 2D Erstellen
[[3, 4, 5, 6], [4, 5, 6, 7], [9, 10, 3, 5]]
I umgewandelt diese in eine COO-Matrix mit dem folgenden Code:
# Flatten 2D array
data = np.asarray(twod_array).flatten()
row = np.arange(0, len(data))
col = np.arange(0, len(row))
# Make COO matrix
mat = coo_matrix((data, (row, col)), shape=(len(row), len(row)))
Ist Dies ist die korrekte Art, ein zweidimensionales Array in eine COO-Matrix umzuwandeln.
EDIT
Was ich versuche, dies zu tun ist, habe ich Teile auf einer coloumn und Artikel auf der anderen Seite.
Ich habe die obigen Daten in Zahlen umgewandelt, damit sie weiterverarbeitet werden können.
parts items
1, 2, 3 1
4, 5, 3 2
Jetzt möchte ich die obigen Daten in LightFM einspeisen, also habe ich ein 2D-Array wie dieses erstellt.
[[1, 2, 3, 1], [4, 5, 3, 2]]
Aber da LightFM des Fit-Verfahren dauert nur in np.float32 coo_matrix der Form [n_users, n_items], welches ein Matrix-Interaktionen benutzer Element enthält. Ich konvertierte das 2D-Array unter Verwendung der oben genannten Methode.
Warum glauben Sie, dass das nicht stimmt? Führt das zu Fehlern? –
@ cᴏʟᴅsᴘᴇᴇᴅ Keine Fehler. Ich benutze es, um ein LightFM-Modell zu trainieren und die Empfehlungen, die vom Modell generiert werden, sind sehr seltsam. –
Sie können 'mat.A' verwenden, um zu überprüfen. Was ist Ihre erwartete Leistung? – Akavall