MLlib主要概念之ML Pipelines

本文介绍了Spark MLlib中的ML Pipelines,它提供了一种构建和协调机器学习管道的高级API。Pipelines受到scikit-learn启发,使用DataFrame作为数据集,包括Transformer(转换DataFrame)和Estimator(用于训练的算法)的概念。Pipeline是由多个Transformer和Estimator组成的序列,它们按顺序处理数据。Pipeline的工作原理是将DataFrame通过一系列转换和模型训练,确保训练和测试数据经历相同的预处理步骤。
摘要由CSDN通过智能技术生成

ML Pipelines

前言:在这一节中,我们介绍一个叫做ML Pipelines管道的概念。ML Pipelines提供了一套建立在 DataFrames 之上的高级APIs来帮助用户创造和协调机器学习中实际实用的管道技术。
本文布局
这里写图片描述

Pipelines的主要概念

MLlib是标准化的机器学习算法APIs来让机器学习算法变得更简单融合复杂的算法在一个管道里,或者工作流。管道是一种灵感来自于 scikit-learn project,这节将会介绍它的Pipelines API。

DataFrame:这是ML API 使用来自于Spark SQL的DataFrame作为一个ML 自己的数据集。DataFrame是一种能够支持多种数据类型的数据集。比如DataFrame能够含有不同的列存储文本,向量,真实的标签,和预测标签。

Transformer:Transformer是一种能够将一个DataFrame转化另一个DataFrame的算法。比如ML 模型是一个Transformer ,这样的模型就能够将一个有特征的DataFrame转化为一个预测的DataFrame。

Estimator:Pipelines是一个能够采取合适的方法将DataFrame产出一个Transformer。

Pipeline:Pipeline是一种被多种Transformers 和Estimators共同描述的唯一的 ML workflow;

Parameter:所有的Transformers and Estimators都共用一个指定的参数API。

DataFrame

机器学习能够被应用到各种不同的数据类型,比如向量,文本,图片,和结构化数据。这个API为了支持多样数据类型采用来自Spark SQL的DataFrame。
DataFrame支持许多基础的和结构化的类型,并且能够被RDD明确和隐性的创造。这段代码事例,DataFrame的列被text, “features,” 和 “label”命名了

Pipeline的组成

Transformers
Transformers是一个包含了特征transformers和已经学习好的模型的抽象概念。从技术上来说transformers实现了transform()方法, transform()能够将 DataFrame转化成另一个 DataFrame。通常是通过增加一个或者更多的列来实现。

Estimators
Estimators是一个学习算法或者任何在数据上训练和普适算法的抽象概念。从技术上来说,Estimators实现了 fit()方法,fit()是一种接受 DataFrame并转化为模型的方法,是一个Transformer。举个例子,
一个学习算法比如逻辑回归算法就是一个Estimators,并使fit()方法训练出一个LogisticRegressionModel。

pipeline components的属性
Transformer.transform()s 和Estimator.fit()s都是无状态的 ,在未来,状态性的算法会由可选择的概念支持。
每一个 Transformer 和 Estimator运行实例都有一个不同的ID,这个ID用来区别参数。(下文讨论)

Pipeline
在机器学习中,运行一个序列化好的数据的算法是一件很常见的事情。比如一个简单的文本处理工作流可能包含下面几个步骤。
1.对每个文档进行分词。
2.将每个文档分词转化为数学特征向量。
3.利用特征向量和标签产生一个预测模型。
MLlib使用Pipeline代表这个工作流。Pipeline由序列化好的PipelineStages和运行特定的顺序。下节点我们使用这个简单的工作流来运行一个简单的例子。

他是如何工作的

一个 Pipeline已经被指定了运行步骤,每一个步骤不是 Transformer就是Estimator,这些步骤都是按顺序运行的。输入的DataFrame数据被转化,每当通过每一个步骤。在Transformer阶段,transform()返回DataFrame。在Estimator阶段,fit()返回一个Transformer(这是一个 PipelineModel的一部分,或者已经转化合适的Pipel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值