在Graphlab中,我正在處理一小組健身數據,以使用可以提供建議的推薦功能。數據集有userid的列,但沒有項目標識符,而是按列排列的不同項目以及與每個用戶標識對應的行中的各自評級。爲了使用任何graphlab推薦方法,我需要有userid和item id。下面是我做的:Grpahlab SFrames:與數據集一起使用SFrame的錯誤
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)
基本上,我提取從數據user_ID的山坳,並使用X,Y,Z,等試圖使一列項目Id從相同的數據中提取出列,以使其他sframe只有這2列。這段代碼產生了一個帶有2列的表格格式的sframe,但是沒有按照我在SFrame中傳遞參數的順序排列。因此,輸出將ItemId作爲第一列,然後是UserId。儘管我試圖改變在sframe中傳遞這2個元素的順序,但它仍然提供相同的輸出。有誰知道原因? 使用任何推薦方法時,這會進一步產生問題,因爲它會給出錯誤:列名稱user_id不存在。
謝謝埃文,使用堆棧()幫助使用其他推薦方法。代碼執行得很好,除非它沒有給出我以這種方式使用的推薦函數的任何結果:result = graphlab.recommender.item_similarity_recommender.create(m,user_id ='UserId',item_id ='ItemId',target ='Rating ',similarity_type ='cosine') recs = result.recommend() print recs – user6127405