自学内容网 自学内容网

大数据导论第九章作业

第九章 作业

1、试述大数据分析全流程主要包括哪些环节?

答:为了实现之前给出的系统设计方案,需要选择确定相关的实现技术。具体如下:

①数据集。通过网络爬虫从网络获得电影评分数据集,这里使用Scrapy爬虫。

②操作系统。在构建大数据分析系统时,一般建议采用Linux系统,Linux系统有许多发行版,这里选择Ubuntu。

③关系数据库。在电影推荐系统中,需要使用关系数据库来存储用户信息、电影信息、用户评分信息和电影推荐结果信息。目前,市场上有许多关系数据库产品,比如Oracle、SQL Server、DB2、MySQL等,这里选择开源数据库产品MySQL。

④分布式文件系统。用来保存大量的电影评分数据,这里选择Hadoop的HDFS。

⑤ETL。用来把通过网络爬虫得到的、保存在文本文件中的数据,经过数据清洗以后加载到分布式文件系统中,这里采用开源ETL工具Kettle。

⑥分布式计算框架。对于机器学习算法而言,传统的机器学习算法,由于技术和单机存储的限制,只能在少量数据上使用。在面对大规模数据集时,需要实现分布式机器学习算法,因此,这里采用机器学习框架Spark MLlib。MLlib提供了ALS算法的分布式实现,也就是说,开发人员不需要编写ALS算法的实现细节,只要调用MLlib提供的ALS算法的API,传入训练数据(电影评分数据集),MLlib就会自动完成模型训练,训练得到的模型就可以用于预测某个用户对某部电影的评分。

⑦编程语言。Spark MLlib支持Java、Scala和Python,教材里采用Scala语言(类Java语言),是为了和下面的网站开发环境Node.js对应 。但目前一般选择Python语言,网站开发环境Node.js 也支持Python。所以Scala或Python都可以。

⑧开发工具。调试Spark程序,需要一款高效的开发工具,这里选择IntelliJ IDEA (是java编程语言开发的集成环境)。

⑨网站。网站开发采用Node.js。Node.js是一个JavaScript运行环境,是一个基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动、非阻塞I/O模型,具备轻量和高效的特点,非常适合在分布式设备上运行数据密集型的实时应用。

系统实现是一个比较复杂的过程,这里只简单介绍系统实现过程中所涉及到的一些任务,关于系统实现的详细细节可以参考《大数据实训案例之电影推荐系统(Scala版)》。系统实现涉及的主要任务如下:

①搭建环境。安装Linux系统、JDK、关系型数据库MySQL、大数据软件Hadoop、大数据软件Spark、开发工具IntelliJ IDEA、ETL工具Kettle和Node.js;

②采集数据。编写Scrapy爬虫从网络上获取电影评分数据;

③加载数据。使用ETL工具Kettle对数据进行清洗后加载到分布式文件系统HDFS中。

④存储和管理数据。使用分布式文件系统HDFS和关系数据库MySQL对数据进行存储和管理。

⑤处理和分析。使用Scala语言和开发工具IntelliJ IDEA,编写Spark MLlib程序,根据HDFS中的大量数据进行模型训练(即使用数据对ALS算法进行训练得到模型),然后,使用训练得到的模型进行电影评分预测,并为用户推荐评分高的电影。

⑥可视化。使用Node.js搭建网站,接受用户访问,并以可视化方式呈现电影推荐结果。

总体而言,要实现本案例,我们需要掌握以下知识:Linux操作系统、关系数据库、JDK基本知识、面向对象编程、Scala编程语言、网络爬虫、数据清洗、分布式文件系统、Spark、Spark SQL、Spark Mllib、JDBC、机器学习、数据挖掘、推荐系统、协同过滤算法、ASL算法、网页应用程序开发、HTML语言、数据可视化、系统设计等。

从专业技能的角度,我们需要掌握:Linux系统及相关软件的安装和使用方法、JDK的安装、Hadoop的安装和基本使用方法、Spark的安装和基本使用方法、MySQL数据库的安装和基本使用方法、开发工具InteliJ IDEA的安装和使用方法、Scala程序开发方法、软件项目管理工具Maven的使用方法、ETL工具Kettle的安装和使用方法、Spark SQL程序的开发方法、ALS算法的使用方法、Spark MLlib程序开发方法、Node.js的安装和使用Node.js开发动态网页的方法等。

4、请说明ALS算法是如何应用于电影推荐系统的。

答:在本案例中,我们可以获得一个电影评分数据集,里面包含了大量用户对不同电影的评分,用户和商品的关系三元组<User,Item,Rating>中,User就是参与打分的电影观众,Item就是电影,Rating就是观众对电影的打分。在我们获取到的电影评分数据集中,只包含了大量用户对他已经看过的电影的评分,对于没有看过的电影,用户是无法评分的,因此,由这个数据集构建得到的矩阵肯定是一个稀疏矩阵。我们可以使用电影评分数据集对ALS算法进行训练,训练的过程就是寻找低秩矩阵P和Q、使P和Q尽可能地逼近R(即R=PQT)的过程。算法训练过程达到收敛以后,得到一个模型,然后,就可以使用这个模型进行评分预测,也就是给定一个用户和一部电影,该模型就会预测该用户可能给该电影打多少分。根据用户对电影评分高低来确定是否为推荐电影。


原文地址:https://blog.csdn.net/r2931887650/article/details/143440049

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!