首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >user_features中不正确的特性数量

user_features中不正确的特性数量
EN

Stack Overflow用户
提问于 2020-12-14 23:58:10
回答 1查看 846关注 0票数 0

我正在建设推荐系统-混合在Lightfm。我的数据有39326独特的用户和2569个独特的游戏标题(项目)。我的列车交互稀疏矩阵具有形状:<39326x2569型稀疏矩阵,类型为,压缩稀疏行format>中有758931个存储元素,我的测试交互稀疏矩阵有“”类型的shape:<39323x2569稀疏矩阵和压缩稀疏行format>中存储的194622个元素.

我训练模型: model1 = LightFM(learning_rate=0.01,loss='warp')模型1.warp(train_interactions,

( epochs=20),它创建对象:,但当我试图检查准确性时: train_precision = precision_at_k(model1,train_interactions,k=10).mean() test_precision = precision_at_k(model1,test_interactions,k=10).mean()

我收到错误信息: user_features中不正确的特性数,为什么?很明显这些形状是相容的?我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-15 15:43:46

您的测试稀疏矩阵是维度39323x2569,而您的列车稀疏矩阵是维度39326x2569。您在测试集中缺少了3个用户。

我建议您使用lightfm内置的列车/测试拆分功能来避免错误:https://making.lyst.com/lightfm/docs/cross_validation.html

如果希望以自己的方式拆分数据,还可以将user_id和item_id转换为从0开始的连续整数。然后用这个:

代码语言:javascript
复制
from lightfm.data import Dataset
# Create your train and test set in the format [[user_id1, item_id1, score1], ..., [user_idn, item_idn, scoren]] 
# Your score can be just 1 for an implicit interaction
# user_id and item_id are integers

data = Dataset()
data.fit(unique_user_ids, # list from 0 to n_users 
         unique_item_ids # list from 0 to n_items
        )
train, weights_matrix = data.build_interactions([tuple(i) for i in train])
test, weights_matrix = data.build_interactions([tuple(i) for i in test])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65298197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档