我有一个包含三列'customer','item_id','ct_id‘的表,但是行大约有300万行。唯一的'item_id‘有20350个条目,而'customer’有2485个条目。每个顾客可以购买20350种商品中的任意数量的商品
我们的目标是建立一个基于表格的推荐系统。首先,我想构造一个2485x20350的矩阵,它的行是‘客户’,列是'item_id‘。每个元素都是表中'customer‘和'item_id’对的出现次数。THen I可以基于此客户/项目矩阵构建相似度矩阵。
我尝试在熊猫中使用pivot_table,如下所示: d_pivt = dt.pivot_table(index='cstm_num','it_num',aggfunc='count'),
我只是想知道,有了这些信息,构建我想要的矩阵的最有效方法是什么。
谢谢,
发布于 2016-11-17 07:09:27
您说的是列中的'item_id'和行中的'customer'。
d_pivt = dt.pivot_table(values='ct_id', index='customer',
columns='item_id', aggfunc='count')演示
df = pd.DataFrame(np.random.randint(0, 10, (1000, 3)),
columns=['customer', 'item_id', 'ct_id'])
df.pivot_table('ct_id', 'customer', 'item_id', 'count')

发布于 2016-11-18 00:06:00
@piRSquared你的方法就像我想要的那样工作。现在,我的客户/项目矩阵如下所示:enter image description here
我还没有被允许添加图片。:-(
但是我得到了我想要的矩阵,它的尺寸是2485x20350。你可以从上面的图像链接中看到,有很多零,因为一个顾客可能只会买几百件商品。我尝试使用以下命令计算项目相关矩阵:
sall_pvtb = sales_all.pivot_table(values='cm_id', index='cstm_num',
columns = 'it_num', aggfunc='count')
sall_pvtb.fillna(0, inplace = True)
sall_corr = sall_pvtb.corr()但项目相关性计算需要很长时间,因为它是20350x20350大小的矩阵。相关性计算是不是很稀疏?
https://stackoverflow.com/questions/40643867
复制相似问题