我正在使用Python隐式库(https://github.com/benfred/implicit),希望为我的用户群生成一些产品建议。我的用户群中有13000个产品视图的数据。我将这些数据提取到一个csv中,如下所示:
user_id, 1, 2, 3
1, 0, 1, 0
2, 1, 1, 0
3, 0, 0, 1
上面我的csv在顶部有产品id,在左边有用户id,这是行中第一列的内容。每个用户的1或0反映用户是否查看了该产品id。以下是我迄今为止尝试生成推荐的代码:
import implicit
import pandas as pd
import scipy.sparse as sparse
data = pd.read_csv('data/interactions_matrix.csv')
interactions = sparse.csr_matrix(data.to_sparse().to_coo())
# initialize a model
model = implicit.als.AlternatingLeastSquares()
# train the model on a sparse matrix of item/user/confidence weights
model.fit(interactions)
user_ids = [1,2,3]
# recommend items for a user
for user_id in user_ids:
print(user_id)
print(model.recommend(user_id, interactions))
不幸的是,当我运行结果时,我得到的只是一堆空白数组,这让我觉得我在做一些明显错误的事情。我猜这是我导入的数据的格式,但是我很难找到有关示例数据格式的信息来读入库中。你知道吗
当像这样加载数据时,您的交互矩阵仍然为每个项/用户对都有一个条目-对于这个库,这表示每个用户都喜欢每个项。默认情况下,recommende调用删除已经喜欢的项(使用filter\u already\u liked\u items参数),导致结果像您看到的那样是空数组-但这也意味着您训练的模型也不会有任何效果。你知道吗
在拟合模型之前,应该调用
interactions.eliminate_zeros()
删除零项。另外,与其使用CSV格式的密集矩阵并转换为coo,只列出itemid/userid/value的三元组可能更容易相关问题 更多 >
编程相关推荐