Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Lightfm用户功能中的功能数量不正确_Python 3.x_Recommender Systems_Lightfm - Fatal编程技术网

Python 3.x Lightfm用户功能中的功能数量不正确

Python 3.x Lightfm用户功能中的功能数量不正确,python-3.x,recommender-systems,lightfm,Python 3.x,Recommender Systems,Lightfm,我正在构建推荐系统-Lightfm中的混合。 我的数据有39326个独特的用户和2569个独特的游戏标题(项目)。 我的列车互动sparce矩阵具有以下形状: 我的测试交互稀疏矩阵具有以下形状: I列车型号:型号1=LightFM(学习率=0.01,损耗='warp') 模型1.拟合(训练交互, 时代=20) 这将创建对象: 但当我试图通过以下方式检查准确性时: 列车精度=列车k处的精度(模型1,列车相互作用,k=10)。平均值() 试验精度=试验k时的精度(模型1,试验相互作用,k=10)。平

我正在构建推荐系统-Lightfm中的混合。 我的数据有39326个独特的用户和2569个独特的游戏标题(项目)。 我的列车互动sparce矩阵具有以下形状: 我的测试交互稀疏矩阵具有以下形状:

I列车型号:型号1=LightFM(学习率=0.01,损耗='warp') 模型1.拟合(训练交互,
时代=20) 这将创建对象: 但当我试图通过以下方式检查准确性时: 列车精度=列车k处的精度(模型1,列车相互作用,k=10)。平均值() 试验精度=试验k时的精度(模型1,试验相互作用,k=10)。平均值()

我收到错误消息:用户功能中的功能数量不正确
为什么?很明显,这些形状是兼容的?我遗漏了什么?

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

我建议您使用lightfm内置的列车/测试拆分功能以避免错误:

如果要以自己的方式拆分数据,还可以将用户id和项目id转换为从0开始的连续整数。然后用这个:

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])

非常感谢你!我必须使用我自己的选择,以确保每个用户和每个项目都在列车测试。因此,现在的形状是兼容的,如果我不使用任何用户/项目fetaures,它可以工作,但当我这样做时,我仍然会得到错误。我添加了8个附加功能,因此我的形状是:交互:39326x2569,用户功能形状:39326行×2577(2577=2569+8),项目功能:2569行×39334列(39334=39326+8)。它训练得很好,但在尝试评估它时,我仍然收到形状错误消息。特征应该是什么形状?