1、机器学习概述
机器学习的定义:
(1)在维基百科上对机器学习提出以下几种定义:
- “机器学习是一门人工智能的科学,该领域的主是如何在经验学习中改善具体算法的性能”。
- “机器学习是对能通过经验自动改进的计算机算法的研究”。
- “机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。”一种经常引用的英文定义是:A computer program is said to learn from experience with respect to some class of tasks T and performance measure P, if its performance at tasks in T,as measured by P, improves with experience E。
(2)可以看出机器学习强调三个关键词:算法、经验、性能,其处理过程如下图所示。
机器学习是数据通过算法构建出模型并对模型进行评估,评估的性能如果达到要求就拿这个模型来测试其他的数据,如果达不到要求就要调整算法来重新建立模型,再次进行评估,如此循环往复,最终获得满意的经验来处理其他的数据。
参考文献:云端机器学习 Pipeline 资源:
1、AWS Sagemaker:https://aws.amazon.com/cn/sagemaker/
2、Google AutoML:https://cloud.google.com/automl/
1.1.监督学习
监督是从给定的训练数据集中学习一个函数(模型),当新的数据到来时,可以根据这个函数(模型)预测结果。监督学习的训练集要求包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注(标量)的。在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”、“非垃圾邮件”,对手写数字识别中的“1”、“2”、“3”等。在建立预测模型时,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断调整预测模型,直到模型的预测结果达到一个预期的准确率。常见的监督学习算法包括回归分析和统计分类:
- 二元分类是机器学习要解决的基本问题,将测试数据分成两个类,如垃圾邮件的判别、房贷是否允许等问题的判断。
- 多元分类是二元分类的逻辑延伸。例如,在因特网的流分类的情况下,根据问题的分类,网页可以被归类为体育、新闻、技术等,依此类推。
监督学习常常用于分类,因为目标往往是让计算机去学习我们已经创建好的分类系统。数字识别再一次成为分类学习的常见样本。一般来说,对于那些有用的分类系统和容易判断的分类系统,分类学习都适用。
监督学习是训练神经网络和决策树的最常见技术。神经网络和决策树技术高度依赖于事先确定的分类系统给出的信息。对于神经网络来说,分类系统用于判断网络的错误,然后调整网络去适应它;对于决策树,分类系统用来判断哪些属性提供了最多的信息,如此一来可以用它解决分类系统的问题。
1.2 无监督学习
与监督学习相比,无监督学习的训练集没有人为标注的结果。在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括 Apriori 算法和 k-Means 算法。这类学习类型的目标不是让效用函数最大化,而是找到训练数据中的近似点。聚类常常能发现那些与假设匹配的相当好的直观分类,例如基于人口统计的聚合个体可能会在一个群体中形成一个富有的聚合,以及其他的贫穷的聚合。
无监督学习的目标是我们不告诉计算机怎么做,而是让它(计算机)自己去学习怎样做一些事情。非监督学习一般有两种思路:其中一种思路是在指导 Agent 时不为其指定明确的分类,而是在成功时采用某种形式的激励制度。需要注意的是,这类训练通常会置于决策问题的框架里,因为它的目标不是产生一个分类系统,而是做出最大回报的决定。这种思路很好地概括了现实世界,Agent 可以对那些正确的行为做出激励,并对其他的行为进行处罚。
1.3 半监督学习
半监督学习(Semi-supervised Learning)是介于监督学习与无监督学习之间一种机器学习方式,是模式识别和机器学习领域研究的重点问题。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。半监督学习对于减少标注代价,提高学习机器性能具有非常重大的实际意义。主要算法有五类:基于概率的算法;在现有监督算法基础上进行修改的方法;直接依赖于聚类假设的方法等,在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理地组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测,如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)等。半监督学习分类算法提出的时间比较短,还有许多方面没有更深入的研究。半监督学习从诞生以来,主要用于处理人工合成数据,无噪声干扰的样本数据是当前大部分半监督学习方法使用的数据,而在实际生活中用到的数据却大部分不是无干扰的,通常都比较难以得到纯样本数据。
1.4 强化学习
强化学习通过观察来学习动作的完成,每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻做出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括 Q-Learning 以及时间差学习(Temporal difference learning)。
在企业数据应用的场景下,人们最常用的可能就是监督式学习和非监督式学习的模型。在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据,目前半监督式学习是一个很热的话题。而强化学习更多地应用在机器人控制及其他需要进行系统控制的领域。
1.5 深度学习
深度学习算法是对人工神经网络的发展,在近期赢得了很多关注,特别是百度也开始发力深度学习后,更是在国内引起了很多关注。在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN)、 Deep Belief Networks(DBN)、卷积网络(Convolutional Network)、堆栈式自动编码器(Stacked Auto�encoders)。
网络结构:
1.5 集成学习
集成算法用一些相对较弱的学习模型独立地对同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting、Bootstrapped Aggregation(Bagging)、AdaBoost、堆叠泛化(Stacked Generalization, Blending)、梯度推进机(Gradient Boosting Machine, GBM)、随机森林(Random Forest)。
参考文档:https://xgboost.readthedocs.io/en/latest/
2. Spark MLlib 介绍
Spark 之所以在机器学习方面具有得天独厚的优势,有以下几点原因:
(1)机器学习算法一般都有很多个步骤迭代计算的过程,机器学习的计算需要在多次迭代后获得足够小的误差或者足够收敛才会停止,迭代时如果使用 Hadoop 的MapReduce 计算框架,每次计算都要读/写磁盘以及任务的启动等工作,这会导致非常大的 I/O 和 CPU 消耗。而 Spark 基于内存的计算模型天生就擅长迭代计算,多个步骤计算直接在内存中完成,只有在必要时才会操作磁盘和网络,所以说 Spark 正是机器学习的理想的平台。
(2)从通信的角度讲,如果使用 Hadoop 的 MapReduce 计算框架,由于是通过heartbeat 的方式来进行的通信和传递数据,会导致非常慢的执行速度,而 Spark 具有出色而高效的 Akka 和 Netty 通信系统,通信效率极高。
MLlib(Machine Learnig lib) 是 Spark 对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark 的设计初衷就是为了支持一些迭代的 Job, 这正好符合很多机器学习算法的特点。在 Spark 官方首页中展示了 Logistic Regression 算法在 Spark和 Hadoop 中运行的性能比较,如图下图所示。
可以看出在 Logistic Regression 的运算场景下,Spark 比 Hadoop 快了 100 倍以上!
MLlib 目前支持 4 种常见的机器学习问题: 分类、回归、聚类和协同过滤,MLlib 在
Spark 整个生态系统中的位置如图下图所示。
MLlib 基于 RDD,天生就可以与 Spark SQL、GraphX、Spark Streaming 无缝集成,以 RDD 为基石,4 个子框架可联手构建大数据计算中心!
MLlib 是 MLBase 一部分,其中 MLBase 分为四部分:MLlib、MLI、ML Optimizer 和MLRuntime。ML Optimizer 会选择它认为最适合的已经在内部实现好了的机器学习算法和相关参数,来处理用户输入的数据,并返回模型或别的帮助分析的结果;MLI 是一个进行特征抽取和高级 ML 编程抽象的算法实现的 API 或平台;MLlib 是 Spark 实现一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维以及底层优化,该算法可以进行可扩充; MLRuntime 基于 Spark计算框架,将 Spark 的分布式计算应用到机器学习领域。
2.1 Spark MLlib 架构解析
从架构图可以看出 MLlib 主要包含三个部分:
-
底层基础:包括 Spark 的运行库、矩阵库和向量库;
-
算法库:包含广义线性模型、推荐系统、聚类、决策树和评估的算法;
-
2.1 MLlib 算法库分析
2.2.1 分类算法
支持向量机(SVM)算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易解决。
2.2.2 回归算法
线性回归是利用称为线性回归方程的函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析方法,只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归,在实际情况中大多数都是多元回归。
线性回归(Linear Regression)问题属于监督学习(Supervised Learning)范畴,又称分类(Classification)或归纳学习(Inductive Learning)。这类分析中训练数据集中给出的数据类型是确定的。机器学习的目标是,对于给定的一个训练数据集,通过不断的分析和学习产生一个联系属性集合和类标集合的分类函数(Classification Function)或预测函数(Prediction Function),这个函数称为分类模型(Classification
Model——或预测模型(Prediction Model)。通过学习得到的模型可以是一个决策树、规格集、贝叶斯模型或一个超平面。通过这个模型可以对输入对象的特征向量预测或对对象的类标进行分类。
回归问题中通常使用最小二乘(Least Squares)法来迭代最优的特征中每个属性的比重,通过损失函数(Loss Function)或错误函数(Error Function)定义来设置收敛状态,即作为梯度下降算法的逼近参数因子。
logistic 回归主要是进行二分类预测,也即是对于 0~1 之间的概率值,当概率大于0.5 预测为 1,小于 0.5 预测为 0.显然,我们不能不提到一个函数,即sigmoid=1/(1+exp(-inX)),该函数的曲线类似于一个 s 型,在 x=0 处,函数值为 0.5。
2.2.3. 聚类算法
所谓聚类问题,就是给定一个元素集合 D,其中每个元素具有 n 个可观察属性,使用某种算法将 D 划分成 k 个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高。其中每个子集叫做一个簇。
K-Means 属于基于平方误差的迭代重分配聚类算法,其核心思想十分简单:
- 随机选择 K 个中心点;
- 计算所有点到这 K 个中心点的距离,选择距离最近的中心点为其所在的簇;
- 简单地采用算术平均数(mean)来重新计算 K 个簇的中心;
- 重复步骤 2 和 3,直至簇类不再发生变化或者达到最大迭代值;
- 输出结果。
总结:
1、 课程整体总结:
(1)首先讲的是存储
(2)数据转化、清洗
(3)人工智能
2、 深度学习是基于gpu的大量使用和数据的丰富才变得非常热门的。
作者:梦捷者
链接:https://www.jianshu.com/p/7c1fa0a89da4
相关推荐
spark机器学习,Scala语言开发,能够实现Kmeans聚类。
总的来说,Spark机器学习模块的源码解读涉及了广泛的机器学习理论与实践,不仅涵盖了各种算法的实现,还包括了分布式系统的设计与优化。通过深入学习这些源码,开发者能够更好地理解Spark在机器学习中的工作方式,...
Spark机器学习算法实现详解 在大数据处理领域,Apache Spark已经成为了一款重要的工具,它提供了高效、易用的数据处理框架。Spark不仅支持批处理,还支持流处理、图形处理和机器学习等多种计算模式。本篇文章将重点...
Spark机器学习是一个强大的工具,广泛应用于大数据分析和预测建模。这个文档可能涵盖了Spark MLlib库中的基础到进阶的机器学习算法实现。MLlib是Apache Spark的核心组件之一,提供了丰富的机器学习算法,包括分类、...
标题:Spark机器学习案例实战 1. Spark简介 Apache Spark是一个开源的大数据处理框架,主要用于大规模数据集的处理。它构建在Hadoop之上,提供了比Hadoop MapReduce更快的数据处理能力。Spark提供了用于快速计算的...
Spark的机器学习库MLlib包含了多种机器学习算法,包括分类、回归、协同过滤、聚类等。其中,聚类是一种无监督学习方法,用于将数据分为不同的组或簇,每个簇内的数据相似度较高,而不同簇间的数据相似度较低。K-...
在Spark的生态系统中,MLlib提供了丰富的机器学习算法,包括分类、回归、聚类、协同过滤以及特征提取等,并且支持模型选择、调优和管道构建。这份"Spark 机器学习"的思维导图详细阐述了Spark MLlib的各个方面,对于...
专注大数据 Spark ML 机器学习:监督学习、无监督学习,主要有:分类算法、回归算法、聚类算法、推荐算法、频繁模式挖掘算法.zip
Spark2.x机器学习实战,本课程主要讲解基于Spark 2.x的机器学习库,MLlib实现了常用的机器学习,如:聚类、分类、回归等6大算法,使用Kaggle竞赛数据集模型构建。本课拒绝枯燥的讲述,将循序渐进从Spark2.x的基础...
本篇将围绕"Spark机器学习示例代码"这一主题,深入探讨Spark在机器学习中的应用,以及如何通过示例代码理解和实践相关算法。 首先,我们要理解Spark MLlib库是Spark的核心组件之一,它提供了丰富的机器学习算法,...
4. Spark MLlib库:包含使用Spark内置的机器学习库MLlib进行分类、回归、聚类等任务的代码。 5. Spark SQL:演示如何使用Spark SQL与Hive等SQL接口进行数据查询和分析。 6. 大数据流水线:可能有一个完整的端到端...
在翻译工作中,吴洪泽作为翻译者团队的一员,对《Spark机器学习库(v1.1.0)》进行了翻译,其中聚类和降维部分由蔡立宇翻译。 综合这些信息,可以看出Apache Spark的机器学习库对于大数据处理和分析的重要性,并且...
《Spark+MLlib机器学习实践》是王晓华撰写的一本深度解析Spark机器学习库MLlib的实战指南。这本书全面介绍了如何利用Apache Spark的MLlib库进行高效、大规模的数据挖掘和机器学习任务。以下是对该书内容的详细解读:...
Spark MLlib 库提供了大量的机器学习算法和工具,包括分类、回归、聚类、推荐系统等。 Spark MLlib 的优点包括: 1. Spark MLlib 库提供了一个统一的 API,能够快速构建机器学习模型。 2. Spark MLlib 库提供了...
在机器学习领域,Spark提供了丰富的库,如MLlib,使得数据科学家能够便捷地实现各种复杂的算法。下面将详细介绍Spark框架中的几种关键机器学习算法。 1. **贝叶斯分类器**: 贝叶斯分类器基于概率理论,尤其是...
在机器学习部分,MLlib提供了各种算法,包括分类、回归、聚类、协同过滤等。这些算法都设计为与Spark的数据结构兼容,可以方便地与其他Spark功能结合使用。例如,使用Scala编写训练模型的代码,然后在大量数据上进行...
#### 三、Spark机器学习库MLlib详解 **MLlib的功能组成**: - **算法工具**:包括分类、回归、聚类、协同过滤等多种常见的机器学习算法。 - **特征化工具**:提供了一系列用于特征提取、转换、降维和选择的工具。 - ...
《Spark专刊 SparkMLlib机器学习》是由作者李军编写的关于Spark机器学习库MLlib的专业文献,旨在为读者提供全面、清晰的Spark MLlib学习资料。这本书的内容涵盖了MLlib库的基础概念、核心功能以及实际应用,对于想要...
大数据的挖掘是当今的研究热点,也有着巨大的商业价值。新型框架Spark部署在...该文研究了Spark中的机器学习中的聚类算法KMeans,先分析了算法思想,再通过实验分析其应用的方法,然后通过实验结果分析其应用场景和不足。