Wae*_*ssi 4 python sparse-matrix dataframe
我正在使用带有列 = ['users_id', 'item_id', 'rating', 'timestamp', 'title'] 的 DataFrame 使用 python 3.5,我正在使用
model = LightFM(loss='warp') 推荐模型
所以对于训练,我需要一个特定格式的 sparseMatrix => (users_id, item_id) rating
但是当我使用它时我从未成功scipy.sparse.csr_matrix(data['users_id'])。它给了我这样的东西:
(0,0) 5
(0,1) 5
(0,2) 4
(0,3) 5
我应该如何处理?
如果您想在 LightFM 模型中使用它后创建一个稀疏矩阵,我认为您应该使用库提供的Dataset对象。例如,如果我调用您的 DataFrame df :
from lightfm.data import Dataset
data = Dataset()
data.fit(df.users_id.unique(), df.item_id.unique())
interactions_matrix, weights_matrix = data.build_interactions([tuple(i) for i in df.drop(['timestamp', 'title'], axis = 1).values])
Run Code Online (Sandbox Code Playgroud)
fit 方法用于将您的 users_id 和 items_id 映射到内部 id 并且 build_interactions 方法创建两个稀疏矩阵,一个二进制矩阵仅包含用户和项目之间的交互,另一个二进制矩阵具有权重(即评级),它需要一个可迭代的(user_id, item_id) 或 (user_id, item_id, weight) 作为参数。
然后,您可以使用这两个通过 build_interactions 创建的矩阵在 LightFM 中拟合您的模型。
from lightfm import LightFM
model = LightFM(loss='warp')
model.fit(interactions_matrix, sample_weight = weights_matrix)
Run Code Online (Sandbox Code Playgroud)
您可以在 LightFM文档中找到更多信息,例如可以查看有关构建数据集或快速入门的部分。
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |