spark.ml 提供了基于Dataframes高层次的API,可以用来构建机器学习工作流(pipeline)
一.Pipelines的主要概念 Dataframe(数据模型)Dataframe作为ML的数据集
ML可以应用于各种各样的数据类型,比如向量,文本,图形和结构化数据。API采用Spark SQL的Dataframe就是为了支持各种各样的数据类型
Transformer(转换器)转换器是特征变换和机器学习模型的抽象。转换器必须实现transform方法,这个方法将一个Dataframe转换成另一个Dataframe,通常是附加一个或多个列
Estimators(模型学习器)Estimators模型学习器是拟合和训练数据的机器学习算法或者其它算法的抽象
Estimators(模型学习器)实现fit()方法,这个方法输入一个Dataframe并产生一个model即一个transformer(转换器)
例如:一个机器学习算法是一个estimator模型学习器,比如这个算法是LogisticRegression,调用fit()方法训练出一个LogisticRegressionModel,这是一个Model,因此也是一个Transformer(转换器)
Pipeline(管道)Pipeline将多个Transformers和Estimators绑在一起形成一个工作流,在机器学习中,通常会执行一系列算法来处理和学习模型,比如,一个简单的文本文档处理流程可能包含这几个步骤:把每个文档的文本分割成单词 → 将这些单词转化成一个数值型特征向量 → 使用特征向量和标签学习一个预测模型
MLlib代表一个流水线,就是一个pipeline,pipeline包含了一系列有特定顺序的管道步骤(transformers和estimators)
Parameter(参数)MLlib的Estimators(模型学习器)和Transformer(转换器)使用统一的API来指定参数。Param是具有自包含定义的参数,ParamMap是一组(参数,值)对
将参数传递给算法主要有两种方式
二.Pipelines的实例一个pipeline由多个步骤组成,每个步骤都是一个Transformer(转换器)或Estimator(模型学习器)
这些步骤按顺序执行,首先输入的Dataframe,然后通过每个阶段进行转换
在Transformer(转换器)步骤中,Dataframe会调用transform()方法
在Estimator(模型学习器)步骤中,fit()方法被调用并产生一个Transformer(转换器)会成为pipelinemodel的一部分,或者适配pipeline,并且dataframe会调用这个transformer的transform()方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)