Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 基于推荐系统的项目预测_Python_Numpy_Recommendation Engine_Collaborative Filtering - Fatal编程技术网

Python 基于推荐系统的项目预测

Python 基于推荐系统的项目预测,python,numpy,recommendation-engine,collaborative-filtering,Python,Numpy,Recommendation Engine,Collaborative Filtering,对于基于项目的CF,我有从python库中成对获得的相似性 但我得到了糟糕的评级预测。评级预测值在0.1-0.9之间。此pred计算有效吗?问题在于在预测函数中计算平均用户评分的方式 ratings数组上的调用mean包括所有0值,该值表示用户未对电影进行分级 您将希望通过仅对用户评级执行平均值函数来创建评级数组。这可以通过对列车数据进行简单的分组操作来实现 mean_user_rating = train_data.groupby('user_id')['rating'].mean() 你

对于基于项目的CF,我有从python库中成对获得的相似性


但我得到了糟糕的评级预测。评级预测值在0.1-0.9之间。此pred计算有效吗?

问题在于在预测函数中计算平均用户评分的方式

ratings数组上的调用mean包括所有0值,该值表示用户未对电影进行分级

您将希望通过仅对用户评级执行平均值函数来创建评级数组。这可以通过对列车数据进行简单的分组操作来实现

mean_user_rating = train_data.groupby('user_id')['rating'].mean()

你希望得到什么
0.1-0.9看起来像是一个标准化范围,应该可以,但所有值都将介于
0.01和0.99(或1)
之间,具体取决于它们的匹配情况。你希望得到更多的数字吗?(虽然在标准化范围和非标准化范围之间,我看不到推荐性能有任何差异)。我希望得到0-5范围内的预测值。有没有可能的转换方法?这就是我从预测中得到的:[0.11780604 0.12146975 0.118728…,0.11945179 0.11526597 0.11711326]你总是可以将你的0.1-0.9范围框到0-5范围:
(预测-0.1)*6.25
@zwer感谢您的帮助,但在我使用该等式后,我没有得到0-5范围内的值。我发现我的数据范围是0-0.269945945。我需要将其更改为0-5,以计算评级预测与真值表之间的相关性。
mean_user_rating = train_data.groupby('user_id')['rating'].mean()