In Graphlab, Ich arbeite mit kleinen Fitnessdaten, um Empfehlungsfunktionen zu verwenden, die Empfehlungen bieten könnten. Das Dataset hat die Spalten der Benutzer-ID, aber nicht die Element-IDs, stattdessen sind verschiedene Elemente in Spalten angeordnet und ihre jeweiligen Bewertungen in Zeilen, die jeder Benutzer-ID entsprechen. Um eine beliebige Graphlab-Recommender-Methode verwenden zu können, muss ich eine Benutzer-ID und eine Item-ID haben. Hier ist, was ich getan habe:Grpahlab SFrames: Fehler bei der Verwendung von SFrames mit dem Datensatz
v = graphlab.SFrame.read_csv('Data.csv')
userId = v["user_id"]
itemId = v["x","y","z","x1","y1","z1"] //x,y,z,x1,y1,z1 are activities that are actually the columns in Data and contains corresponding ratings given by user
sf= graphlab.SFrame({'UserId':userId,'ItemId':itemId})
print sf.head(5)
Grundsätzlich ich die user_id col aus Daten extrahiert und versucht, eine Spalte für ItemId machen mit der x, y, z, usw. extrahiert Spalten aus den gleichen Daten, um einen anderen sframe zu machen mit nur diesen 2 Spalten. Dieser Code führt zu einem Tabellenformat sframe mit 2 Spalten wie erwartet, aber nicht in der gleichen Reihenfolge angeordnet übergeben ich Argumente in SFrame. Die Ausgabe gibt ItemId als die erste Spalte und dann UserId. Obwohl ich versuchte, die Reihenfolge der Übergabe dieser 2 in sframe zu ändern, gibt es immer noch die gleiche Ausgabe. Kennt jemand den Grund warum? Dies erzeugt ein weiteres Problem, wenn eine Empfehlungsmethode verwendet wird, da sie den Fehler gibt: Spaltenname user_id existiert nicht.
Dank Evan, mit Stack() half bei der Verwendung der anderen Empfehlungsmethoden. Der Code wird gut ausgeführt, außer dass er keine Ergebnisse für die Empfehlungsfunktion liefert, die ich auf diese Weise verwendet habe: result = graphlab.recommender.item_similarity_recommender.create (m, user_id = 'UserId', item_id = 'ItemId', target = 'Rating ', Ähnlichkeitsart =' Kosinus ') recs = result.recommend() print recs – user6127405