MLlib 是 Spark 提供的一个机器学习库,通过调用 MLlib 封装好的算法,能够轻松地构建机器学习利用。它提供了十分丰盛的机器学习算法,比方分类、回归、聚类及举荐算法。除此之外,MLlib 对用于机器学习算法的 API 进行了标准化,从而使将多种算法组合到单个 Pipeline 或工作流中变得更加容易。通过本文,你能够理解到:
- 什么是机器学习
- 大数据与机器学习
- 机器学习分类
- Spark MLLib 介绍
机器学习是人工智能的一个分支,是一门多畛域交叉学科,波及概率论、统计学、迫近论、凸剖析、计算复杂性实践等多门学科。机器学习实践次要是设计和剖析一些让计算机能够主动“学习”的算法。因为学习算法中波及了大量的统计学实践,机器学习与推断统计学分割尤为亲密,也被称为统计学习实践。算法设计方面,机器学习实践关注能够实现的,卓有成效的学习算法。
起源:Mitchell, T. (1997). Machine Learning. McGraw Hill.
什么是机器学习
机器学习的利用已遍布人工智能的各个分支,如专家系统、主动推理、自然语言了解、模式识别、计算机视觉、智能机器人等畛域。机器学习是人工智能的一个分支学科,次要钻研的是让机器从过来的经验中学习教训,对数据的不确定性进行建模,对将来进行预测。机器学习利用的畛域很多,比方搜寻、举荐零碎、垃圾邮件过滤、人脸识别、语音辨认等等。
大数据与机器学习
大数据时代,数据产生的速度是十分惊人的。互联网、挪动互联网、物联网、GPS 等等都会在无时无刻产生着数据。解决这些数据所须要的存储与计算的能力也在成几何级增长,由此诞生了一系列的以 Hadoop 为代表的大数据技术,这些大数据技术为解决和存储这些数据提供了牢靠的保障。
数据、信息、常识是由大到小的三个档次。单纯的数据很难说明一些问题,须要加之人们的一些教训,将其转换为信息,所谓信息,也就是为了打消不确定性,咱们常说信息不对称,指的就是在不可能获取足够的信息时,很难打消一些不确定的因素。而常识则是最高阶段,所以数据挖掘也叫常识发现。
机器学习的工作就是利用一些算法,作用于大数据,而后开掘背地所蕴含的潜在的常识。训练的数据越多,机器学习就越能体现出劣势,以前机器学习解决不了的问题,当初通过大数据技术能够失去很好的解决,性能也会大幅度晋升,如语音辨认、图像识别等等。
机器学习分类
机器学习次要分为上面几大类:
- 监督学习(supervised learning)
基本上是分类的同义词。学习中的
监督
来自训练数据集中标记的实例。比方,在邮政编码辨认问题中,一组手写邮政编码图像与其对应的机器可读的转换物用作训练实例,监督分类模型的学习。常见的监督学习算法包含:线性回归、逻辑回归、决策树、奢侈贝叶斯、反对向量机等等。 - 无监督学习(unsupervised learning)
实质上是聚类的同义词。学习过程是无监督的,因为输出实例没有类标记。无监督学习的工作是从给定的数据集中,挖掘出潜在的构造。比方,把猫和狗的照片给机器,不给这些照片打任何标签,然而心愿机器可能将这些照片分分类,最终机器会把这些照片分为两大类,然而并不知道哪些是猫的照片,哪些是狗的照片,对于机器来说,相当于分成了 A、B 两类。常见的无监督学习算法包含:K-means 聚类、主成分剖析 (PCA) 等。
- 半监督学习(Semi-supervised learning)
半监督学习是一类机器学习技术,在学习模型时,它应用标记的和未标记的实例。让学习器不依赖外界交互、主动地利用未标记样本来晋升学习性能,就是半监督学习。
半监督学习的事实需要十分强烈,因为在事实利用中往往能容易地收集到大量未标记样本,而获取
标记
却需消耗人力、物力。例如,在进行计算机辅助医学影像剖析时,能够从医院取得大量医学影像,但若心愿医学专家把影像中的病灶全都标识进去则是不事实的有标记数据少,未标记数据多
这个景象在互联网利用中更显著,例如在进行网页举荐时需请用户标记出感兴趣的网页,但很少有用户愿花很多工夫来提供标记,因而,有标记网页样本少,但互联网上存在有数网页可作为未标记样本来应用。 - 强化学习(reinforcement learning)
又称再励学习、评估学习,是一种重要的机器学习办法,在智能管制机器人及剖析预测等畛域有许多利用。强化学习的常见模型是规范的马尔可夫决策过程(Markov Decision Process, MDP)。
Spark MLLib 介绍
MLlib 是 Spark 的机器学习库,通过该库能够简化机器学习的工程实际工作。MLlib 蕴含了十分丰盛的机器学习算法:分类、回归、聚类、协同过滤、主成分剖析等等。目前,MLlib 分为两个代码包:spark.mllib与spark.ml。
spark.mllib
Spark MLlib 是 Spark 的重要组成部分,是最后提供的一个机器学习库。该库有一个毛病:如果数据集非常复杂,须要做屡次解决,或者是对新数据须要联合多个曾经训练好的单个模型进行综合计算时,应用 Spark MLlib 会使程序结构变得复杂,甚至难以了解和实现。
spark.mllib 是基于 RDD 的原始算法 API,目前处于保护状态。该库下蕴含 4 类常见的机器学习算法:分类 、 回归 、 聚类 、 协同过滤。指的留神的是,基于 RDD 的 API 不会再增加新的性能。
spark.ml
Spark1.2 版本引入了 ML Pipeline,通过多个版本的倒退,Spark ML 克服了 MLlib 解决机器学习问题的一些有余(简单、流程不清晰),向用户提供了基于 DataFrame API 的机器学习库,使得构建整个机器学习利用的过程变得简略高效。
Spark ML
不是正式名称,用于指代基于 DataFrame API 的 MLlib 库。与 RDD 相比,DataFrame 提供了更加敌对的 API。DataFrame 的许多益处包含 Spark 数据源,SQL / DataFrame 查问,Tungsten 和 Catalyst 优化以及跨语言的对立 API。
Spark ML API 提供了很多数据特色处理函数,如特色选取、特色转换、类别数值化、正则化、降维等。另外基于 DataFrame API 的 ml 库反对构建机器学习的 Pipeline,把机器学习过程一些工作有序地组织在一起,便于运行和迁徙。Spark 官网举荐应用 spark.ml 库。
数据变换
数据变换是数据预处理的一项重要工作,比方对数据进行规范化、离散化、衍生指标等等。Spark ML 中提供了十分丰盛的数据转换算法,具体能够参考官网,现归纳如下:
下面的转换算法中,词频逆文档频率(TF-IDF)、Word2Vec、PCA 是比拟常见的,如果你做过文本开掘解决,那么对此应该并不生疏。
数据规约
大数据是机器学习的根底,为机器学习提供短缺的数据训练集。在数据量十分大的时候,须要通过数据规约技术删除或者缩小冗余的维度属性以来达到精简数据集的目标,相似于抽样的思维,尽管放大了数据容量,然而并没有扭转数据的完整性。Spark ML 提供的特征选择和降维的办法如下表所示:
抉择特色和降维是机器学习中罕用的伎俩,能够应用上述的办法缩小特色的抉择,打消噪声的同时还可能维持原始的数据结构特色。尤其是主成分分析法(PCA),无论是在统计学畛域还是机器学习畛域,都起到了很重要的作用。
机器学习算法
Spark 反对分类、回归、聚类、举荐等罕用的机器学习算法。见下表:
总结
本文对机器学习进行了总体介绍,次要包含机器学习的基本概念、机器学习的根本分类、Spark 机器学习库的介绍。通过本文或者曾经对机器学习有了初步的理解,在下一篇,我将会分享基于 Spark ML 库构建一个机器学习的利用, 次要波及 LDA 主题模型以及 K -means 聚类。
公众号『大数据技术与数仓』,回复『材料』支付大数据资料包