第二步:基于用户的所有评分做出推荐1.生成每两部电影之间的相似度,并只保留流行电影的相似度
userRatings = ratings.pivot_table(index=['user_id'],columns=['title'],values='rating')2.对于每部用户看过并评分过的电影,生成推荐(这里我们选择用户0)
corrMatrix = userRatings.corr(method='pearson', min_periods=100)
myRatings = userRatings.loc[0].dropna()3.将所有相同电影的相似度加和
simCandidates = pd.Series()
for i in range(0, len(myRatings.index)):
#取出与评分过电影相似的电影
sims = corrMatrix[myRatings.index[i]].dropna()
#以用户对这部电影的评分高低来衡量它的相似性
sims = sims.map(lambda x: x * myRatings[i])
#将结果放入相似性候选列表中
simCandidates = simCandidates.Append(sims)
simCandidates.sort_values(inplace = True, ascending = False)
simCandidates = simCandidates.groupby(simCandidates.index).sum()4.只保留用户没有看过的电影
simCandidates.sort_values(inplace = True, ascending = False)
filteredSims = simCandidates.drop(myRatings.index)如何更进一步?在上面的实例中,Pandas与我们的CPU足以处理MovieLens的数据集 。然而,当数据集变得更庞大时,处理的时间也会变得更加漫长 。因此,你应该转为使用具有更强大处理能力的解决方案,如Spark或MapReduce 。
知识在于分享,转发这篇文章,让更多的人看到 。喜欢的朋友也可以点关注收藏!
推荐阅读
- C++面向对象开发的四大特性:封装、抽象、继承、多态
- 五分钟教你搞定wifi断网问题,从此wifi问题不求人
- A2DP连接在安卓系统中的实现
- Type-C大势已成定局!雷电4和USB4都在用,但你真的分得清吗?
- 自己养乌龟需要注意些什么 养乌龟需要什么
- 厚鼻角龙的图片 厚鼻龙图片
- 月球月震的能量大约相当于地球的 月亮特别亮预兆地震
- 变色龙都会变什么颜色 变色龙的皮肤
- 中国航天员实现首次出舱 我国第一位出舱活动的航天员是
- 绿毛龟的毛可以拔掉吗 乌龟长绿毛怎么清除
