作业解析-电影推荐网站

目录

1. 作业题目………………………………………………………………

2. 作业目的………………………………………………………………

3. 运行效果………………………………………………………………

4. 实现过程………………………………………………………………

5. 知识点巩固…………………………………………………………..

6 知识拓展……………………………………………………………….

7 学习建议……………………………………………………………….

作业辅导解析

LAB_WORKSHEET_WEEK[作业标题]

4th April,2018[日期]

1.作业题目:[Assignment 上面随便复制一点]

基于 Apache mahout library,有根据相似用户推荐(userbase),根据电影内容推荐(itembase) 服务器 tomcat 9.0. 网站大概的构想是用户可以登陆可以注册,新用户进入后在随机的可能 喜欢中选择自己喜欢的电影,然后网站显示根据不同的算法推荐的电影。电影的配图统一配 成 一 个 就 好 。 整 体 风 格 可 以 参 照 Netflix 那 种 比 较 简 洁 的 样 子 。 电 影 数 据 是 https://grouplens.org/中的”1 Million MovieLens Dataset”。

2.作业目的:[作业的目的 1-3 个点都可以]

1、 了解协同过滤的基本概念

2、 掌握 apache mahout 类库的定义和使用方法

3.运行效果: [运行结果截图]

image image image image

4.实现过程:[部分核心代码截图, 截图部分的代码 prefer 中英文 注释]

image

参考源码图 1.1

核心代码上图所示,本次作业主要通过以下步骤实现: 1、 加载评分的 rating 文件

2、 定义用户相似性函数

3、 分别创建基于用户和物品的推荐类

4、 生成对指定用户的推荐电影

5.知识点巩固:[相关知识点 1-3 点总结]

-协同过滤 协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息, 个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而 帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。 基于协同过滤的推荐可以分为三个子类:基于用户的推荐(User-based Recommendation), 基于项目的推荐(Item-based Recommendation)和基于模型的推荐(Model-based Recommendation)。

6.知识拓展:[拓展知识点 1-3 点总结]

-apache mahout

基于用户和基于物品的推荐算法:

type arrayName [ x ][ y ]; //准备数据 这里是电影评分数据 //将数据加载到内存中,GroupLensDataModel 是针对开放电影评论数据的 File file = new File(Test.class.getResource(“/”).getFile() + “ml-1m/ratings.dat”); DataModel dataModel = new GroupLensDataModel(file); //计算相似度,相似度算法有很多种,欧几里得、皮尔逊等等。 //dataModel.setPreference(); UserSimilarity similarity = new PearsonCorrelationSimilarity(dataModel); //计算最近邻域,邻居有两种算法,基于固定数量的邻居和基于相似度的邻居,这里使用基于固定数量的 邻居 UserNeighborhood userNeighborhood = new NearestNUserNeighborhood(100, similarity, da taModel); //构建推荐器,协同过滤推荐有两种,分别是基于用户的和基于物品的,这里使用基于用户的协同过滤推

Recommender recommender = new GenericUserBasedRecommender(dataModel, userNeighborhoo d, similarity); //给用户 ID 等于 5 的用户推荐 10 部电影 List<RecommendedItem> recommendedItemList = recommender.recommend(5, 10); //构建推荐器,协同过滤推荐有两种,分别是基于用户的和基于物品的,这里使用基于物品的协同过滤推 荐 GenericItemBasedRecommender recommender = new GenericItemBasedRecommender(dataModel, itemSimilarity);

7.学习建议:[根据学习 IT 的经验,写 1-3 , prefer 3 个点]

1、 协同过滤是推荐算法的经典方法,需要掌握 2、 本次作业涉及到 apache mahout 类库的使用

3、 在后续巩固中可以加强 mahout 类库的学习,多尝试不同的 API。