Spark入门:SparkMLlib介绍

机器学习可以看做是一门人工智能的科学,该领域的主要研究对象是人工智能。机器学习利用数据或以往的经验,以此优化计算机程序的性能标准。一种经常引用的英文定义是:

AcomputerprogramissaidtolearnfromexperienceEwithrespecttosomeclassoftasksTandperformancemeasureP,ifitsperformanceattasksinT,asmeasuredbyP,improveswithexperienceE。

机器学习强调三个关键词:算法、经验、性能,其处理过程如上图所示。在数据的基础上,通过算法构建出模型并对模型进行评估。评估的性能如果达到要求,就用该模型来测试其他的数据;如果达不到要求,就要调整算法来重新建立模型,再次进行评估。如此循环往复,最终获得满意的经验来处理其他的数据。机器学习技术和方法已经被成功应用到多个领域,比如个性推荐系统,金融反欺诈,语音识别,自然语言处理和机器翻译,模式识别,智能控制等。

传统的机器学习算法,由于技术和单机存储的限制,只能在少量数据上使用。即以前的统计/机器学习依赖于数据抽样。但实际过程中样本往往很难做好随机,导致学习的模型不是很准确,在测试数据上的效果也可能不太好。随着HDFS(HadoopDistributedFileSystem)等分布式文件系统出现,存储海量数据已经成为可能。在全量数据上进行机器学习也成为了可能,这顺便也解决了统计随机性的问题。然而,由于MapReduce自身的限制,使得使用MapReduce来实现分布式机器学习算法非常耗时和消耗磁盘IO。因为通常情况下机器学习算法参数学习的过程都是迭代计算的,即本次计算的结果要作为下一次迭代的输入,这个过程中,如果使用MapReduce,我们只能把中间结果存储磁盘,然后在下一次计算的时候从新读取,这对于迭代频发的算法显然是致命的性能瓶颈。

MLlib是Spark的机器学习(MachineLearning)库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。具体来说,其主要包括以下几方面的内容:

Spark机器学习库从1.2版本以后被分为两个包:

使用MLPipelineAPI可以很方便的把数据处理,特征转换,正则化,以及多个机器学习算法联合起来,构建一个单一完整的机器学习流水线。这种方式给我们提供了更灵活的方法,更符合机器学习过程的特点,也更容易从其他语言迁移。Spark官方推荐使用spark.ml。如果新的算法能够适用于机器学习管道的概念,就应该将其放到spark.ml包中,如:特征提取器和转换器。开发者需要注意的是,从Spark2.0开始,基于RDD的API进入维护模式(即不增加任何新的特性),并预期于3.0版本的时候被移除出MLLib。

在接下来的几个章节里,我们将从基本的机器学习算法入手,循序渐进的来学习Spark平台下的机器学习。

厦门大学软件工程系副教授,2009年毕业于中国人民大学计算机系获工学博士学位。主要研究方向是网络数据管理,车载网络,大数据分析和管理。

THE END
1.算法你知道什么是算法吗?今天的内容会让你重新认识算法……一、算法 1.1 什么是算法? 1.2 例题求解 二叉树拓展 1.3 个人对算法的理解 1.4 个人观点的由来 结语 导读 大家好,很高兴又和大家见面啦!!! 今天我们将会开始咱们编程学习过程中的一个非常重要的内容学习——算法(algorithm)。 说到算法,相比大家应该不会陌生了,在【数据结构】专栏的绪论部分中,我们就有介绍过算https://blog.csdn.net/2301_79458548/article/details/143206088
2.深度学习算法简介深度学习算法是什么深度学习算法有哪些深度学习算法简介 深度学习算法是什么?深度学习算法有哪些? 作为一种现代化、前沿化的技术,深度学习已经在很多领域得到了广泛的应用,其能够不断地从数据中提取最基本的特征,从而对大量的信息进行机器学习。深度学习算法作为其中的重要组成部分,不仅可以为诸如人工智能、图像识别以及自然语言处理等领域提供支持,同时也受到https://m.elecfans.com/article/2216210.html
3.什么是机器学习算法?IBM机器学习算法是 AI 系统用来执行任务的一套规则或流程,最常见的用途是发现新的数据洞察或模式,或者从一组给定输入变量中预测输出值。机器学习 (ML) 利用算法来学习。 行业分析师一致认同机器学习及其底层算法至关重要。Forrester 指出:“机器学习算法的进步让营销数据的分析更加精确深入,可帮助营销人员了解营销细节(如https://www.ibm.com/cn-zh/topics/machine-learning-algorithms
4.什么是集成学习算法51CTO博客什么是集成学习算法 经过前面的学习,我们认识了机器学习中的常用回归算法、分类算法和聚类算法,在众多的算法中,除神经网络算法之外,没有一款算法模型预测准确率达到 100%,因此如何提高预测模型的准确率成为业界研究的重点。通过前面内容的学习,你可能会迅速想到一些方法,比如选择一款适合的算法,然后反复调整各种参数,其实https://blog.51cto.com/u_12480926/8170971
5.机器学习参数和非参数机器学习算法腾讯云开发者社区什么是参数机器学习算法并且它与非参数机器学习算法有什么不同? 本文中你将了解到参数和非参数机器学习算法的区别。 让我们开始吧。 学习函数 机器学习可以总结为学习一个函数(f)(f),其将输入变量(X)(X)映射为输出变量(Y)(Y)。 Y=f(x)Y=f(x) https://cloud.tencent.com/developer/article/1046475
6.什么是数据结构?什么是算法?怎么学习数据结构与算法?什么是算法?怎么学习数据结构与算法? 01 前言 学习算法,我们不需要死记硬背那些冗长复杂的背景知识、底层原理、指令语法……需要做的是领悟算法思想、理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案。相比编程领域的其他技术,算法更纯粹,更接近数学,也更具有趣味性。https://maimai.cn/article/detail?fid=1744039689&efid=u2sSJyH6RePBrCh7o1dCfA
7.算法的本质是什么?学算法有什么用?算法的本质是解决问题的方法,是思想 在早期的时候,人们遇到新问题,必须要去解决它,经过“冥思苦想”,“反复探索尝试”, 最后总结归纳。这才形成了今天我们学习的各种算法。如果无法领会到解决问题的思想,无法总结归纳,就会有:“学算法有什么用?”。不知道为什么学,自然会认为学了没意义,没https://zhidao.baidu.com/question/1968979639194552900.html
8.一文看懂机器学习「3种学习方法+7个实操步骤+15种常见算法」机器学习、人工智能、深度学习是什么关系? 1956 年提出 AI 概念,短短3年后(1959)Arthur Samuel就提出了机器学习的概念: Field of study that gives computers the ability to learn without being explicitly programmed. 机器学习研究和构建的是一种特殊算法(而非某一个特定的算法),能够让计算机自己在数据中学习从https://easyai.tech/ai-definition/machine-learning/
9.统计学习方法(豆瓣)—— 引自章节:第一篇 监督学习 算法2.2 (感知机学习算法的对偶形式) (3) 如果 y_i(\sum_{j=1}^N \alpha_j y_j x_j \dot x_i+b) \le 0, \alpha_i \leftarrow \alpha_i+\eta b \leftarrow b + \eta y_i (查看原文) https://book.douban.com/subject/10590856/
10.《常用算法之智能计算(三)》:机器学习计算在给出机器学习计算各种算法之前,最好是先研究一下什么是机器学习和如何对机器学习进行分类,才能更好的理解和掌握一些具体的机器学习算法并将其用于实际问题的计算和处理。 学习是人类具有的一种重要智能行为,但究竟什么是学习,长期以来却众说纷纭。社会学家、逻辑学家和心理学家都各有自己不同的看法和说法。比如,http://www.kepu.net/blog/zhangjianzhong/201903/t20190327_475625.html
11.算法工程师,到底要学些什么?算法工程师可以说简单也可以说复杂,主要在于你想做到什么地步。一个优秀的算法工程师可以处理很多深层次的东西,而一个经验不足的算法工程师可能就只会使用工具包来解决问题。 算法工程师需要掌握的技能和知识点是非常广泛的,不仅仅包含算法和数据结构,还包括机器学习、深度学https://mp.weixin.qq.com/s?__biz=MzU2NjU3OTc5NA==&mid=2247573272&idx=1&sn=ab6406176511fdaafbaea44623343e6b&chksm=fca9d825cbde5133aaae4ee88b4792247f197ea9b01b90ee4638e84107951611ec92067000d7&scene=27