我正在尝试构建协作式过滤推荐器系统,在其中比较稀疏数据矩阵中的用户和项目。
数据:
5.149.754 unique ids
7.827.435 unique items
数据是隐式的,因此如果用户单击了项目,它们会受到用户的喜欢。因此,每个项目的数据为1
或0
。
我在可伸缩性方面遇到问题。我正在尝试使用Pandas
,NumPy
和SciPy
来建立一个稀疏的用户项矩阵,但是却出现了错误(显然吗?):
Unstacked DataFrame is too big, causing int32 overflow
带熊猫枢轴
MemoryError
(带有Numpy数据透视表)
即使有{642}行的Pandas DataFrame
中包含profileId和itemId,我也遇到了这些错误。可以通过age
和gender
之类的变量将数据分类。
最终,我试图根据尽可能多的用户/项目向用户推荐项目,但是由于我没有使用如此大的数据集的经验,所以我不了解这种系统的局限性。
您将如何实施这样的系统?有必要拆分数据吗?在进行此操作之前,我应该阅读一些库/文档吗?