Python Spark 机器学习与Hadoop 大数据(1)学习笔记一

Python Spark 机器学习与Hadoop 大数据

1.1机器学习

机器学习框架
机器学习(Machine Learning):通过算法,和历史数据进行训练,产生得出模型。当有未知相匹配的数据时,我们可以通过模型进行一定程度上的预测。
训练数据(监督学习)分为:Feature(数据特征)Label(数据标签,预测目标)
机器学习分类:监督学习:有Feature,有Labul,无监督学习:有Feature,无Label
机器学习分类表:
分类 算法 Label
监督学习 二元分类(Binary Classification) 只有0或1
监督学习 多元分类(Multi-Class Classification) 有多个选项,例1,2,3,4,5…
监督学习 回归分析(Regression) 值是数字,通过计算获得
无监督学习 聚类分析(Clustering) 将数据分组,群组内相似性最高,不同群组的相异性最高

分类 算法 Label
监督学习 二元分类(Binary Classification) 只有0或1
监督学习 多元分类(Multi-Class Classification) 有多个选项,例1,2,3,4,5…
监督学习 回归分析(Regression) 值是数字,通过计算获得
无监督学习 聚类分析(Clustering) 将数据分组,群组内相似性最高,不同群组的相异性最高

机器学习程序运行图:
Python Spark 机器学习与Hadoop 大数据(1)学习笔记一_第1张图片

1.2 Spark介绍

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。是开放源码的集群运算框架,适合处理Spark Streaming数据流处理、Spark SQL互动分析、MLlib 机器学习等应用

MLlib 是Spark 中提供机器学习函数的库。它是专为在集群上并行运行的情况而设计的。MLlib 中包含许多机器学习算法,可以在Spark 支持的所有编程语言中使用,由于Spark基于内存计算模型的优势,非常适合机器学习中出现的多次迭代,避免了操作磁盘和网络的性能损耗。Spark 官网展示的 MLlib 与Hadoop性能对比图就非常显著。所以Spark比Hadoop的MapReduce框架更易于支持机器学习。

Spark Streaming 是个批处理的流式(实时)计算框架。其基本原理是把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。

1.3 Spark数据处理RDD、DataFrame、Spark SQL

Spark数据处理方式主要有3中:RDD、DataFrame、Spark SQL
易用程度:Spark SQL > DataFrame > RDD
RDD(Resilient Distributed Datasets,弹性分布式数据集),是Spark最为核心的概念,自然也是理解Apache Spark 工作原理的最佳入口之一。
DataFrame是python中pandas中的一种数据结构。类似于表的一种结构。
Spark SQL是Apache Spark用于处理结构化数据的模块。Spark SQL允许使用SQL或熟悉的DataFrame API查询Spark程序内的结构化数据。Spark SQL支持多语言编程包括Java、Scala、Python和R。

1.4 Python Spark 机器学习

Python机器学习模块主要是Pandas、Scikit-learn 。

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生

Scikit-learn(简记sklearn),是用python实现的机器学习算法库。sklearn可以实现数据预处理、分类、回归、降维、模型选择等常用的机器学习算法。sklearn是基于NumPy, SciPy, matplotlib的。

机器学习主要的两个API:DataFrom、Spark ML Pipeline
DataFrom(数据学习):FormData对象用以将数据编译成键值对
Spark ML Pipeline:ML Pipeline 是建立在DataFrames上的更高层次的 API 库,旨在帮助使用者来创建和调试实际的机器学习工作流。

1.5 Spark ML Pipeline机器学习流程介绍

Pipeline原意是管道、输油管道的意思。

输油管道Pipeline
石油生产过程图:
Python Spark 机器学习与Hadoop 大数据(1)学习笔记一_第2张图片
Spark ML Pipeline机器学习工作流程图:
Python Spark 机器学习与Hadoop 大数据(1)学习笔记一_第3张图片
上图说明:
(1)训练:“训练数据DataFrom”使用pipeline.fit()进行训练,产生模型(Model)
(2)预测:“新数据DataFrom”使用pipelineModel.transform()进行预测,产生“预测结果DataFrom”。

1.6 Spark2.0介绍

新功能介绍
Spark SQL
Spark SQL在Spark 2.0可以运行所有99个TPC-DS查询(需求SQL:2003中的很多功能支持)
DataSet API
从Spark 2.0开始,DataFrames只是行(row)数据集的typealias了。无论是映射、筛选、groupByKey之类的类型方法,还是select、groupBy之类的无类型方法都可用于Dataset的类。此外,这个新加入的Dataset接口是用作Structured Streaming的抽象,由于Python和R语言中编译时类型安全(compile-time type-safety)不属于语言特性,数据集的概念无法应用于这些语言API中
SparkSession:这是一个新入口,取代了原本的SQLContext与HiveContext。对于DataFrame API的用户来说,Spark常见的混乱源头来自于使用哪个“context”。现在你可以使用SparkSession了,它作为单个入口可以兼容两者,点击这里来查看演示。注意原本的SQLContext与HiveContext仍然保留,以支持向下兼容。
更简单、性能更佳的Accumulator API:我们设计了一个新的Accumulator API,不但在类型层次上更简洁,同时还专门支持基本类型。原本的Accumulator API已不再使用,但为了向下兼容仍然保留。
Spark ML pipeline机器学习程序包
(1)以DataFrom为基础的机器学习程序包Spark ML pipeline将成为主要的机器学习架构。过去的Spark MLlib程序包任然可以继续使用,未来的开发会以Spark ML pipeline 为主。
(2)Spark ML pipeline程序包可以存储、加载训练完成的模型。
R语言的分布式算法:增加对广义线性模型(GLM)、朴素贝叶斯算法(NB算法)、存活回归分析(Survival Regression)与聚类算法(K-Means)的支持。

你可能感兴趣的:(Python,Spark,Hadoop,机器学习,大数据,大数据,Spark,机器学习,Hadoop,学习笔记)