技术原理

Spark MLlib——Apache Spark的机器学习库

Spark MLlib是Apache Spark的机器学习组件,Spark的一个主要吸引力就是能够大规模地扩展计算,这正是机器学习算法所需要的。但其局限性在于所有的机器学习算法都不能有效地并行化。无论是任务并行还是数据并行,每种算法都有自己的并行化挑战,你可以先看看由业内专家策划的Spark课程,然后再继续写博客。从事Spark MLlib的开发人员正在Spark框架中以可伸缩和简洁的方式实现越来越多的机器算法。通过这个博客,我们将学习机器学习的概念,Spark MLlib,它的实用工具,算法和电影推荐系统的完整用例。

这个博客将涵盖以下主题:

什么是机器学习?Spark MLlib概述Spark MLlib工具MLlib算法用例-电影推荐系统什么是机器学习?”

是从人工智能中的模式识别和计算学习理论发展而来的,机器学习探索学习和构造能够从数据中学习并对数据进行预测的算法——这种算法通过从样本输入建立模型,通过做出数据驱动的预测或决策,克服了严格遵循静态程序指令的缺点。

Machine Learning - Spark MLlib - Edureka图:机器学习工具

机器学习与计算统计学有着密切的联系,它也关注于通过计算机进行预测。它与数学优化有着紧密的联系,数学优化为该领域提供了方法、理论和应用领域,机器学习是一种用于设计复杂模型和算法的方法,这种模型和算法适合于商业用途的预测,称为预测分析。

有三类机器学习任务:

监督学习:监督学习是有输入变量(x)和输出变量(Y),使用算法学习从输入到输出的映射函数。无监督学习:无监督学习是一种机器学习算法,用于从由无标记响应的输入数据组成的数据集中提取推论。强化学习:一个计算机程序与一个动态环境交互,在这个环境中它必须执行一个特定的目标(例如驾驶一辆汽车或与对手玩游戏)。当程序在其问题空间中导航时,会提供奖惩方面的反馈。这个概念叫做强化学习。Spark MLlib概述

Spark MLlib用于在Apache Spark中执行机器学习。MLlib由流行的算法和实用程序组成。

MLlib概述:

火花.mllib包含在RDD之上构建的原始API。当前处于维护模式。火花.ml提供构建在数据框架之上的更高级别的API,用于构建ML管道。火花.ml是目前Spark的主要机器学习API。Spark MLlib工具

Spark MLlib提供了以下工具:

ML算法:ML算法是MLlib的核心。其中包括常用的学习算法,如分类、回归、聚类和协同过滤。特征化:特征化包括特征提取、变换、降维和选择。管道:管道为构建、评估和调整ML管道提供了工具。持久性:持久性有助于保存和加载算法、模型和管道。实用程序:用于线性代数、统计和数据处理的实用程序。MLlib算法

Spark MLlib中流行的算法和实用程序是:

基本统计信息获取一组主变量。它可以分为特征选择和特征提取。

特征选择:特征选择查找原始变量(也称为特征或属性)的子集。特征提取:将高维空间中的数据转换为更小维的空间。数据变换可以是线性的,如主成分分析(PCA),但也存在许多非线性降维技术。特征提取

特征提取从最初的一组测量数据开始,并构建旨在提供信息和非冗余的派生值(特征),以便于后续的学习和泛化步骤,在某些情况下可导致更好的人类解释。这与降维有关。

优化

优化是从一组可用的备选方案中选择最佳元素(关于某些标准),

在最简单的情况下,一个优化问题是通过系统地从一个允许的集合中选择输入值并计算函数的值来最大化或最小化一个实函数。最优化理论和技术对其他公式的推广包含了一个很大的应用数学领域。一般来说,优化包括在给定一个定义域(或输入)的情况下,找到某个目标函数的“最佳可用”值,包括各种不同类型的目标函数和不同类型的域。

用例-电影推荐系统

问题陈述:构建一个电影推荐系统根据用户的喜好使用Apache Spark推荐电影。

我们的需求:

所以,让我们评估一下构建我们的电影推荐系统的需求:

处理来自多个来源的大量数据输入易于使用的快速处理

因为我们可以评估我们的需求,我们需要最好的大数据工具来在短时间内处理大数据。因此,Apache Spark是实现我们的电影推荐系统的完美工具。

现在让我们看看系统的流程图。

Use Case Flow Diagram - Spark MLlib - Edureka如我们所见,下面使用的是Spark流媒体的流媒体。我们可以实时流媒体或从Hadoop HDFS中读取数据。

获取数据集:

对于我们的电影推荐系统,我们可以从许多流行的网站,如IMDB、烂西红柿和时代电影收视率获得用户评等。此数据集有多种格式,如CSV文件、文本文件和数据库。我们可以从网站实时传输数据,也可以下载并存储在本地文件系统或HDFS中。

Getting Dataset - Spark MLlib - Edureka

数据集:

下图显示了如何从流行网站收集数据集。

BookMyShow - Spark MLlib - Edureka

一旦将数据流到Spark中,看起来有点像这样。

Movie Dataset - Spark MLlib - Edureka

机器学习:

整个推荐系统都是基于机器学习算法的交替最小二乘法。这里,ALS是一种回归分析,其中回归用于在数据点中间画一条线,这样,与每个数据点的距离的平方和最小。因此,这一行用于预测函数的值,其中它满足自变量的值。

Regression ALS - Spark MLlib - Edureka

图中的蓝线是最适合的回归线。对于这一行,维度D的值是最小的。所有其他红线都将始终远离整个数据集。

触发MLlib实现:我们将使用协作过滤(CF)根据用户对其他电影的评分来预测特定电影的评分。然后,我们将此与其他用户对特定电影的分级协作。为了从机器学习中获得以下结果,我们需要使用Spark SQL的数据框架、数据集和SQL服务。”这是我们程序的伪代码:

进口org.apache.spark网站.mllib.建议.ALS进口org.apache.spark网站.SparkConf公司//导入其他必需的包对象电影{def main(参数:数组[字符串]){val conf=new SparkConf().setAppName(“Movie”).setMaster(“local[2]”)val sc=新SparkContext(conf)原始数据值=sc.textFile文件(“*从电影CSV文件读取数据*”)//rawData.first公司()val额定值=rawRatings.map图{*映射用户、电影和分级的大小写数组*}//训练数据model.userFeatures模式model.productFeatures.count型号val userId=*用户789*瓦尔托普克雷茨=模型.推荐产品(*建议用户使用K*的特定值)"))val标题=电影.map(行=>线分裂(“|”).take(2)).map(array=>(array(0.toInt,array(1))).collectAsMap()标题(123)val moviesForUser=评分。*搜索用户789*val moviesRecommended=sqlContext.*制作推荐电影的数据帧*建议移动。可注册为空(“推荐的电影”)用户的电影。*对用户789*的分级进行排序。map(*将分级映射到电影标题*)。*打印评分*}

一旦生成预测,我们就可以使用Spark SQL将结果存储到RDBMS系统中。此外,这可以显示在web应用程序上。

结果:

Movie Results - Spark MLlib - Edureka图:推荐给用户的电影77

Hurray!因此,我们成功地使用Apache Spark创建了一个电影推荐系统。有了这个,我们只讨论了Spark MLlib提供的众多流行算法中的一个。我们将在即将到来的数据科学算法博客中了解更多关于机器学习的信息。

向前发展,您可以继续学习Apache Spark和Spark教程,Spark流媒体教程,以及Spark访谈问题。Edureka致力于提供最好的在线学习体验。

如果您希望学习Spark并在Spark领域建立职业生涯,并建立使用RDD、Spark流媒体执行大规模数据处理的专业知识,请查看我们的Apache Spark认证培训,SparkSQL、MLlib、GraphX和Scala与现实生活中的用例。“

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
教师人工智能培训心得体会 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录