spark —机器学习
五、掌握spark 在机器学习的应用,包括MLlib(简单了解)和ML(重点掌握),对机器学习的整个流程要理解,对ML的转换器、预测器和管道要理解并知道如何在实际例子中使用,掌握管道和模型保存和加载的方法,对模型的评估指标有大概的认识理解;
1、机器学习
目前机器学习主流分为:监督学习,无监督学习,半监督学习,强化学习四种
人工智能可以看成一门学科,机器学习是实现人工智能的方法,而深度学习是实现机器学习的一门技术。
2、数据的准备
数据准备包括数据的采集,数据的探索和数据的清洗。
数据的采集一般来源于网络爬虫,企业的各种业务数据库,以及公开的数据源(如国家,公益组织等发布)。
数据的探索是对数据进行研究和判断,确定数据的质量与数据的特征,进而为下一步的数据预处理提供基本信息,数据探索环节与可视化展示连接紧密。
数据的清洗是对数据进行进一步的处理,包括数据的清洗、数据的转换、数据标准化、缺失值的处理、特征的提取、数据的降维等方面。
3、机器学习的流程
机器学习的一般步骤是数据的采集,数据的加载,数据的探索,数据的预处理,训练模型,模型评估,模型的保存与调用。
Spark 机器学习库目前分为两个包,分别为mllib(pyspark.mllib)和ml(pyspark.ml)
spark.mllib:基于RDD的机器学习API
spark.ml:基于DataFrames 高层次的API
3、MLlib库的使用
MLlib库主要操作的数据对象是RDD。
4、ML库的使用
ML库也是一个Spark机器学习库,ml主要操作的数据对象是DataFrame。
ML包含三个主要的抽象类:Transformer(转换器),Estimator(预测器)和Pipline(管道)。
Transformer:转换器,是一种可以将一个DataFrame转换为另一个DataFrame的算法。
比如一个模型就是一个Transformer。它可以把一个不包含预测标签的测试数据集 DataFrame 打上标签,转化成另一个包含预测标签的 DataFrame。技术上,Transformer实现了一个transform()方法,它通过附加一个或多个列将一个DataFrame转换为另一个DataFrame。
Estimator:预测器,它是学习算法或在训练数据上的训练方法的概念抽象。
在 Pipeline 里通常是被用来操作 DataFrame 数据并生产一个 Transformer。从技术上讲,Estimator实现了一个方法fit(),它接受一个DataFrame并产生一个转换器。如一个随机森林算法就是一个 Estimator,它可以调用fit(),通过训练特征数据而得到一个随机森林模型(模型是转换器)。
PipeLine:翻译为工作流或者管道。
工作流将多个工作流阶段(转换器和预测器)连接在一起,形成机器学习的工作流,并获得结果输出。
Tokenizer,是转换器(Transformer),将原始DataFrame拆分为单词,并将带有单词的新列添加到DataFrame的words列。
HashingTF ,是转换器(Transformer),将words列转换为特征向量,并将带有特征向量的新列添加到DataFrame中.
5、基本数据类型——本地向量
一个本地向量拥有从0开始的integer类型的索引以及float类型的值。
MLlib和ML支持两种类型的本地向量:稠密(dense)向量和稀疏(sparse)向量。