推荐系统中,预测下一个用户可能购买的商品,则要加入用户历史交互过的商品交互信息,该怎么把数据转换过去呢?
下面有一个例子:
原始数据:
user_id item_id
1 1
1 2
1 3
转换后的数据:
user_id item_id item_1 item_2 item_3 label
1 1 0 0 0 2
1 2 1 0 0 3
1 3 1 1 0 4
item_1, item_2, item_3代表之前用户交互过的商品
希望有大神能帮忙看看
2个回答
Pandas中除了crosstab, pivot_table也可以实现。
#crosstab
df = pd.DataFrame([[1, 1], [1, 2], [1, 3],[2,1],[2,2],[2,2]],
columns=['user_id', 'item_id'])
pd.crosstab([df.user_id, df.item_id], df.item_id)
#pivot_table
pd.pivot_table(df,index = ['user_id', 'item_id'],
columns='item_id', values='item_id',
aggfunc=len, fill_value=0)