2017-12-19 17 views
0

저는 Gowalla 데이터 세트를 사용하는 추천 시스템에 대한 연구를하고 있습니다. 그러나 데이터 세트에는 위치 등급이 없으므로 위치를 방문한 사용자에게는 '1'값을, 위치를 방문한 적이없는 사용자에게는 '0'값을 사용하여 암시 적 등급으로 데이터를 생성해야합니다. 파이썬으로 어떻게 그 행렬을 만들어야합니까? This is a Gowalla dataset파이썬으로 암시 적 등급 매트릭스를 어떻게 작성해야합니까?

답변

0

이 스 니펫 코드는 사용자가 원하는 것을 수행해야합니다. 별개의 사용자 수와 동일한 행 수와 별개의 위치 수와 동일한 열 수를 갖는 스파 스 등급 매트릭스 (scipy.sparse.csr_matrix)를 작성합니다.

import pandas as pd 
import numpy as np 
from scipy.sparse import csr_matrix 

#Load dataset 
df = pd.read_csv('gowalla.csv', sep='\t', names=['user_id','','','','location_id']) 

# Group interactions 
users_locations = df.groupby(by=['user_id','location_id']).apply(lambda x: 1).to_dict() 

# Number of different Users/Locations 
nu = len(df['user_id'].unique()) 
nl = len(df['location_id'].unique()) 

# Build Rating matrix 
row, col = zip(*(users_locations.keys())) #row-> users, col-> locations 
map_u = dict(zip(df['user_id'].unique(),range(nu))) 
map_l = dict(zip(df['location_id'].unique(),range(nl))) 
row_idx = [map_u[u] for u in row] 
col_idx = [map_l[l] for l in col] 
data = np.array(users_locations.values(), dtype=np.float32) 
rating_matrix = csr_matrix((data, (row_idx, col_idx)), shape=(nu,nl)) 
+0

귀하의 도움에 감사드립니다. 그러나 라이브러리 때문에이 코드를 실행할 수 있습니다. 어떤 도서관을 이용합니까? 그냥 팬더 또는 다른 도서관? – Sulis

+0

나는 수입에 대한 대답을 편집했다. 사용 된 도서관은 판다, scipy 및 numpy입니다. 이 코드는 Python 2.7.9에서 작동합니다. – user9342787