基于用户的协同过滤推荐算法WEB版
代码实现
一、开发工具及使用技术
MyEclipse10、jdk1.7、tomcat7、jsp、servlet、javascript、jquery、bootstrap、mahout API、movielens数据集。
二、开发过程
1、InitListener监听器。项目启动后执行application监听器,主要用于读取u.item(电影信息)、u.user(用户信息),并保存在内存中(movielens数据集保存在项目中),便于后期使用,同时初始化用户的年龄和性别分类数据,用于首页网页展示分类统计信息。代码如下:
![1c71a0b4f30bf2d09ec3a6e653990888.png](https://i-blog.csdnimg.cn/blog_migrate/84fa0e075c2ea049a8685318cb6fa5be.png)
2、创建用户、电影实体类。将数据集文件中的用户、电影数据封装成java bean便于操作。代码如下:
![d9709e75a358aed70d901c7f424ca9ac.png](https://i-blog.csdnimg.cn/blog_migrate/c37c20b0249c65063d853b869059aa4d.png)
![4c22f734e53a9c9f4946448f97ff4749.png](https://i-blog.csdnimg.cn/blog_migrate/1bce29419f572da1ce477c873115bc8d.png)
3、CFUtil协同过滤推荐工具类。传统的基于用户的协同过滤荐算法主要分四步骤:构建用户-评分矩阵模型、计算用户之间相似度、得到目标用户最近邻居、推荐结果。使用mahoutAPI接口实现代码如下:
![7fed58b4f935f27df708a479eb5ac58f.png](https://i-blog.csdnimg.cn/blog_migrate/e070b0fb4471ab65d3eb546c14814772.jpeg)
三、运行结果
1、项目首页,用户输入目标用户ID,和最近邻数量(也可以通过阀值确定最近邻居)
![bff34d9d3c4bf2c4715593fd42c7ac8e.png](https://i-blog.csdnimg.cn/blog_migrate/076a397dc64b87a5326af3a3d377e307.png)
下图为根据用户信息分别统计数据集中性别分布和年龄分布:
![fda14ebca195f7c6555ab2cb1331f528.png](https://i-blog.csdnimg.cn/blog_migrate/d582b7cccdf8f23a7255d38ebb771ad8.png)
2、推荐结果页面,展示目标用户ID,最近邻数量,推荐数量为系统默认10个,推荐结果展示电影ID、电影名称、发行时间、预测评分。
![6a23a946c0c076fd1abce409be613fd2.png](https://i-blog.csdnimg.cn/blog_migrate/c9d83c6ceb0859f22035eeaac9a5c438.jpeg)
欢迎留言、私信交流