【发布时间】:2019-08-03 23:18:39
【问题描述】:
我正在研究MovieLens Dataset 的推荐引擎示例。我看到我们可以创建一个用户项目矩阵来计算它们之间的相似性,其中我们将用户作为索引(或行号),将项目(电影)作为列,每个用户对每部电影的评分作为数据矩阵。我相信这就是下面的代码正在做的事情,它看起来很强大,但是,我不清楚它实际上是如何工作的。除了 itertuples 之外,我们还有什么其他方法可以使用(简单的枢轴或转置?有什么优点或缺点吗?)
import pandas as pd
import numpy as np
r_cols = ['user_id', 'movie_id', 'rating', 'unix_timestamp']
ratings = pd.read_csv('ml-100k/u.data', sep='\t',
names=r_cols,encoding='latin-1')
n_users = ratings.user_id.unique().shape[0]
n_items = ratings.movie_id.unique().shape[0]
data_matrix = np.zeros((n_users, n_items))
for line in ratings.itertuples():
data_matrix[line[1]-1, line[2]-1] = line[3]
【问题讨论】:
标签: python pandas data-science recommendation-engine