Python 基于推荐系统的项目预测
对于基于项目的CF,我有从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() 你
但我得到了糟糕的评级预测。评级预测值在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()