该系统是一个基于协同过滤算法的Django电影推荐系统,详细介绍点击跳转。
技术介绍前端: bootstrap3 jquery.js后端: django2.2.1djangorestframework (负责API )数据库: mysql5.7/sqlite3算法
数据属性:
id,title,image_link,country,years,director_description,leader,star,description,all_tags,imdb,IMD
分数:附带一个用于随机生成数据的脚本,可以随机生成指定数量的用户和用户的分数
movielens数据集movielens 100k数据集图像
数据维: movieId,title,genres,picture
电影数量: 37544
分数: 93202
movielens数据集图像用户数据和评估数据csv存储
功能介绍电影展示、电影检索、标签分类
标签分类
用户登录、注册、更改信息用户注册界面
用户登录界面
用户的个人信息
用户注册码
用户评分、收藏和电影详细页面
基于user和Item的协同过滤推荐算法,向想看的电影用户推荐界面
用户推荐部分代码项推荐界面
物品推荐部分代码
后台管理系统,可以添加、删除、修改电影信息
数据库模型代码
算法介绍了冷启动问题的解决方案,为用户首次注册时用户提供感兴趣的标签选择界面。 然后如果用户没有评分,就向用户推荐喜欢标签的电影。
改进的推荐算法----建议在冷启动页面上的用户选择标记后,将用户对这些标记的偏好设置为5,以进行协同过滤。
用户评分电影后,根据该电影的标签更新用户对标签的喜爱。
通过协同过滤获得推荐给用户的电影后,如果推荐的电影数量小于15部,则从用户喜欢的标签中选择部分电影进行填充
更新标签收藏夹值的策略将用户对电影的分数减去3添加到收藏夹值表中。
基于用户的协同过滤算法:执行协同过滤,并且基于用户的评分执行推荐。 在所有评分的用户中找到与当前用户最近的n个用户,并在n个用户评分的电影中查找15个当前用户没有看过的电影。
最近距离算法是通过协同滤波实现的。
推荐算法-协同过滤-简表这个项目使用皮尔森相关系数计算相似度。 基于用户模型的协同过滤(neighbor-basedcollaborativefiltering )。
皮尔逊距离公式:
基于物品的协同过滤计算物品间的相似度,并根据相似度进行推荐
项目之间的搭配矩阵是两个项目同时被n个用户购买
物品间相似度
扎根于相似度:合计现值/N的评价值m的评价值
推荐值:相似度得分
根据用户点赞的商品寻找相似度的推荐。
计算每个评估项和所有未评估项之间的分数。 得分=相似度*得分
得分越高表示越相似。 然后返回结果
基于tensorflow/文本卷积网络的推荐是通过movielens提供的用户信息:年龄-性别-职业。 这三个数据维绘制用户数据信息。 建立文本卷积网络生成模型。 用户可以根据自己的年龄/性别等特征信息接受个性化推荐。
网络的第一层是单词嵌入层,是由各个单词的嵌入向量组成的嵌入矩阵。 下一层使用多个不同大小(窗口大小)的卷积内核来卷积嵌入矩阵。 窗口大小意味着每个卷积都要覆盖几个单词。 这里与折叠图像不同。 图像卷积通常使用大小(例如2x2、3x3、5x5),但文本卷积涵盖整个单词的嵌入向量,因此大小为(单词数、向量维),例如一次滑动三个、四个或五个单词第3层网络中max pooling得到了长向量,最后使用dropout进行正则化,最终得到了电影Title的特点。