学习了解SparkML Pipelines基本概念

 一、Pipelines的基本概念

Spark MLLib封装了一些机器学习算法的API,并且可以将这些算法集成到一个流水线作业当中或者工作流。这个流水线,我的理解就是数据从输入到输出,一套连招完事儿,中间没啥停顿。或者说也不存在,数据处理一下,本地存储一下这样交替的过程。

下面就介绍一些基本概念:

DataFrame:

DataFrame:简称DF是SparkSQL中的抽象数据集合,DF可以简单理解成一个带Schema的二维数据表。DF在使用过程中,会享受很多Spark发展带来的红利,比如DF的内存存储优化、SparkSQL的钨丝调优。在ML中,DF可以用来表示数据、特征向量、数据标签、和预测数据。

Transformer:

Transformer:中文释义转换,我的理解呢就是在DF上的作用函数。在ML中transformer就是使用算法将一个DF转换成另外一个DF。例如,一个ML模型就是一个transformer,它可以将一个带着特征向量的DF转换为一个带着预测数据的DF。

Estimator:

估计器是一个作用在DF上的算法,可以生产一个transformer。例如,学习算法是在DF上训练并产生模型的估计器。

Pipeline:

指的是一个完整的机器学习作业流,这个流由transformer和estimator组成。

Parameter:

这个的释义就是预测器和转换器用的是一套接口参数API;

二、DataFrame

机器学习可以作用的数据类型由很多,例如向量、图片、结构化数据。出于对数据类型的兼容,选用了SparkSQL中的DF,因为DF支持很多种数据类型,也可以支持Vector类型。RDD同样可以转换成DF。

三、Transformer、Estimators、Properties 有啥用

3.1 Transformers

Transformer是一个包含特征transformer和学习模型的抽象。通常来说,在生产上是继承transformer,实现transform算法。这个算法的作用是将一个DF转换成另一个DF,通常是在原DF的基础上增加列。例如

  • 特征转换器在原DF的基础上新增列,并且将新增列的DF作为结果输出
  • 学习模型将DF作为一个参数,读取包含特征值的列,并且根据这些列预测其对应的label

通俗的来说要么是计算特征值,要么是根据特征值算预测标签。

3.2 Estimators

预测器是学习算法或者训练算法的统称。通常来来说预测器实现Estimator中的fit算法,接收一个DF作为参数,返回一个transformer的model。

四、Pipeline怎么跑起来的

通常来说,机器学习就是在数据上作用一堆算法来处理和学习。以处理文本数据为例,它可以分为以下几个部分:

  • 将文本中的拆分为词组
  • 将文本中的每一个单词转换为特征向量
  • 使用特征向量和标签学习出来一个预测模型

那么上述的过程就可以看成是一个pipeline。那么一个pipieline就是一系列stages,每一个stage不是transformer、就是estimator。Stage按顺序运行,运行过程中的数据格式是DF。Transformer Stage调用transform算法,Estimator阶段:调用fit函数生成一个transfomer函数,且这个transfomer函数作用在DF上。

4.1 模型训练的Pipeline

模型训练的pipeline分为三个阶段:Tokenizer(Transformer)、HashingTF(Transformer)、LogisticRegression(Estimator)。下图则是表示数据的流转,首先Tokenizer的作用是将文档转换一个个单词、HashingTF将单词列转换为特征向量,并且在原有DF基础上增加新的特征向量列。LogisticRegression 作为预测器,产出一个LogisticRegression Model。

4.2 模型测试的Pipeline

Pipeline是一个预测器。因此,在pipieline的fit()方法运行之后,它会生成一个PipelineModel,它是一个转换器。此管道模型在测试时使用;下图阐述了这个过程;

上图中,PipielineModel和原始pipieline相比,有着同样的stage数量,但是原有的estimator转换为了transformer。也就是说上述的流水线跑完以后,直接输出模型的训练结果而不是模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大锤爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值