# Chinese-Spark-movie-lens
基于Spark、Python Flask和MovieLens dataset的在线电影推荐系统
## 项目简介
- 适合初学者学习如何搭建一个推荐系统
---
# 基于Spark和Flask实现一个可扩展的在线电影推荐系统
这个Apache Spark教程将指导您逐步了解如何使用Spark的Alternating Least Saqures(交替最小二乘法,ALS)实现的协同过滤来基于[MovieLens数据集](https://grouplens.org/datasets/movielens/)构建电影推荐系统。这个教程分为两部分。第一部分是关于加载和解析电影和评分数据进入到Spark RDDs。第二部分是构建和使用这个推荐系统并且在线持续的使用它。
可以单独使用本教程构建基于MovieLens数据集的影片推荐模型。第一部分中关于如何将ALS与MovieLens数据集一起使用的大多数代码来自我对 CS100.1x Introduction to Big Data with Apache Spark by Anthony D. Joseph on edX 中提出的练习题之一的解决方案,该解决方案自2014年起在Spark Summit上公开发布。从那时起,我添加了一些小修改已使用更大的数据集,然后编写有关如何存储和重新加载模型以供以后使用的代码,最后使用Flask进行Web服务。
在任何情况下,此算法与此数据集的使用并不是新的,这是因为我们强调最终会在在线的环境中使用模型,以及如何在不同的情况下使用它。但我真的受到了解决该课程中提出练习的启发,我强烈建议你学习它。在那里你将学习到不仅有ALS,还有许多其它的Spark算法。
本教程的第二部分是解释如何使用Python/Flask在Spark模型之上构建Web服务的部分。 通过这样做,您将能够开发完整的在线电影推荐服务。
## Part 1:[构建推荐系统](building-recommender.ipynb)
## Part 2:[构建和运行web服务](Building_Running_web_service.ipynb)
## 快速开始
```
// 首先要进入Spark安装目录中的bin文件夹中
D:\spark\spark-2.3.3-bin-hadoop2.7\bin\spark-submit server.py
```
## 相关内容
- 【1】[Win10的Spark + Python Flask环境搭建](https://mp.weixin.qq.com/s?__biz=MzI5MzIwNDI1MQ==&mid=2650120932&idx=5&sn=fa924c8677411661a31df945b330c028&chksm=f474ba90c303338678dcd26edd5707d667c4bbe4a93b1f4e33591892cd858fd2da8db988be38&mpshare=1&scene=23&srcid=0117k0pBqKT5ucoXacbBHMfW&client=tim&ADUIN=278793087&ADSESSION=1517886579&ADTAG=CLIENT.QQ.5537_.0&ADPUBNO=26752#rd)
- 【2】 在线图书推荐系统的实现含源码(协同过滤)
- 【3】 [Spark中ALS的实现原理](https://github.com/endymecy/spark-ml-source-analysis/blob/master/%E6%8E%A8%E8%8D%90/ALS.md)
- 【4】 [糖豆推荐系统第一期开发与评估报告 - ventlam的文章 - 知乎](https://zhuanlan.zhihu.com/p/24945454)
---
# 关注隐式反馈
探索了一些隐式反馈做推荐的方法。
1. [为什么一定要重视隐式反馈?](https://mp.weixin.qq.com/s/lidie27y4obx4St3uHb8CA)
1. [使用矩阵分解找到相似歌曲](https://github.com/ictar/python-doc/blob/master/Science%20and%20Data%20Analysis/%E4%BD%BF%E7%94%A8%E7%9F%A9%E9%98%B5%E5%88%86%E8%A7%A3%E6%89%BE%E5%88%B0%E7%9B%B8%E4%BC%BC%E6%AD%8C%E6%9B%B2.md)
1. [PySpark推荐模型之基于隐式反馈的矩阵分解ALS](https://mp.weixin.qq.com/s/_WtLf6JONPGKP6RoAszInw)
基于Spark、Python Flask和MovieLens dataset的在线电影推荐系统.zip
需积分: 0 69 浏览量
更新于2023-09-03
收藏 28KB ZIP 举报
标题中的“基于Spark、Python Flask和MovieLens dataset的在线电影推荐系统”揭示了这个项目是构建一个使用大数据处理工具Spark,Web开发框架Python Flask,并基于MovieLens数据集的电影推荐服务。下面将详细阐述这三个主要知识点。
1. Spark:Apache Spark是一个开源的大数据处理框架,它提供了快速、通用和可扩展的数据处理能力。Spark的核心特性是支持内存计算,这使得它在处理大规模数据时比传统的Hadoop MapReduce更快。在本项目中,Spark可能被用来处理和分析用户的历史观影行为数据,通过计算相似度或协同过滤算法生成推荐。
2. Python Flask:Flask是一个轻量级的Web服务程序框架,它基于Werkzeug WSGI工具包和Jinja2模板引擎。在电影推荐系统中,Flask用于构建前端界面和后端接口。用户可以通过Web界面浏览电影、查看推荐,而Flask负责接收这些请求,与后端数据库或Spark处理结果进行交互,返回相应的响应。
3. MovieLens dataset:MovieLens是GroupLens Research提供的一个电影评级数据集,常用于推荐系统的研究和实验。数据集包含用户对电影的评分、时间戳等信息,可用于训练推荐模型。在这个项目中,MovieLens数据集可能被用作输入数据,通过Spark进行预处理,然后用于训练推荐算法,如基于用户的协同过滤或基于物品的协同过滤。
4. 项目结构与流程:
- 项目可能包含`app.py`,这是Flask应用的主入口,定义了路由和视图函数。
- 可能有`models.py`,其中定义了推荐系统的算法模型,如UserBasedCollaborativeFiltering或ItemBasedCollaborativeFiltering。
- `data`目录下可能包含预处理后的MovieLens数据集,以及处理数据的脚本。
- `static`和`templates`目录分别存储静态资源(如CSS、JS文件)和HTML模板,用于构建用户界面。
- `requirements.txt`列出项目所需的Python库和版本。
- `README.md`文件通常会提供项目介绍、运行指南和可能的依赖库安装说明。
5. 运行与交互:
- 用户通过浏览器访问Flask应用,登录或注册账户。
- 用户可以浏览电影,给出评分,系统实时更新并存储用户行为数据。
- Spark后台定期或实时处理新数据,更新推荐模型。
- 推荐结果通过Flask接口返回给前端,展示给用户个性化的电影推荐列表。
这个项目结合了大数据处理、Web开发和推荐系统技术,为学习和实践这些技能提供了很好的平台。通过阅读和理解源代码,开发者可以深入理解如何在实际场景中应用这些技术。
程皮
- 粉丝: 279
- 资源: 2566
最新资源
- 【计算机视觉基础CV】03-深度学习图像分类实战:鲜花数据集加载与预处理详解
- 就业赛道上传材料模板.zip
- xilinx vivado cameralink图像接收与发送代码,最大支持并行速度100MHz,优于编解码接口芯片 不利用解码与编码芯片,直接在FPGA内部进行接收解码和发送
- 基于matlab实现的锁模光纤激光器仿真源码+文档说明(高分项目)
- 基于OpenCV全景图像拼接系统源代码(完整前后端+mysql+说明文档+LW).zip
- 知名厂家电动四轮车控制器代码,包含PCB文件,pdf原理图,代码齐全,风格很好
- 基于matlab实现的锁模光纤激光器仿真源码(高分项目)
- 基于python的大学生就业信息管理系统(django)源代码(完整前后端+mysql+说明文档+LW).zip
- 一个同步机无传感滑膜观测器模型加代码,该模型基于28035芯片,采用了典型的smo+pll方案 这段代码是实际应用代码,而不是一般的玩票代码,因此具有较高的可比性(不同于ti例程) 需要注意的是,少数
- 简单好用的移动手机端ASP报名程序(含access数据库)