Spark MLlib简介

1. Spark MLlib简介

1.1 传统ML

ML利用数据或以往经验,以此优化计算机程序的性能标准。

 ML强调的3个关键词: 算法、经验、性能

基于大数据的ML

1. 传统的ML算法,由于技术和单机存储的限制,只能在少量数据上使用,依赖于数据抽样。而大数据技术的出现,可以支持在全量数据上进行ML。

2. ML算法涉及大量迭代计算,基于磁盘的MR不适合进行大量迭代计算,而基于内存的Spark比较适合。

1.2 Spark 机器学习库MLlib

旨在简化ML的工程实践工作。

1. Spark的机器学习库是基于海量数据的,提供了常用ML算法的分布式实现。

2. 可以轻松的通过调用相应API来实现基于海量数据的ML过程。

3. spark-shell 可以满足交互式运行,方便结果查阅。

 MLlib由一些通用的学习算法和工具组成,同时还包括底层的优化原语和高层的流水线API。

1. 算法工具:常用的学习算法,如分类、回归、聚类、协同过滤等。

2. 特征化工具:特征提取、转化、降维和选择工具。

3. 流水线Pipeline: 用于构建、评估和调整ML工作流的工具。

4. 持久化:保存和加载算法、模型和管道。

5. 实用工具:线性代数、统计、数据处理等工具。

从1.2 版本后被分为两个包

1. spark.mllib

历史较长,包含了基于RDD的原始算法API。3.0版本后已废弃

2. spark.ml

提供了基于DataFrames高层次的API,可以用来构建ML Pipeline,弥补了MLlib库的不足,向用户提供了一个基于DF的ML 工作流式API。

 

2.  机器学习工作流

2.1 ML Pipeline 概念

2.1.1 DataFrame

使用Spark SQL中的DataFrame作为数据集,相比RDD,可以容纳各种数据类型,还包含了schema信息。被ML Pipeline 用来存储源数据,DF的列可以是存储的文本、特征向量、真实标签和预测的标签等。

2.1.2 Transformer

       转换器是一种进行DF转换的算法。一个模型就是一个Transformer,它可以把一个不包含预测标签的测试集DF打上标签,转化成另一个包含预测标签的DF。技术上,Transformer实现了一个transform(),通过附加一个或多个列将一个DF转换为另一个DF。

2.1.3 Estimator

评估器是学习算法或在训练数据上的训练方法的概念抽象,在Pipeline里通常是被用来操作DF数据并生成一个Transformer。从技术上讲,Estimator实现了一个fit(),接受一个DF并产生一个Transfomer。比如一个RF算法就是一个Estimator,它可以调用fit(),通过训练特征数据而得到一个RF模型。

2.1.4 Parameter

被用来设置Transformer或Estimator的参数。

2.1.5 PipeLine

工作流将多个阶段连接在一起,形成ML的工作流并获得结果输出。

val pipeline = new Pipeline.setStages(Array(stage1,stage2,...))

然后就可以把训练数据集作为输入参数,调用pipeline.fit()来开始以流的方式处理源训练数据,并返回一个PipelineModel,进而被用来预测测试数据的标签。(Pipeline本身也可以看作一个Estimator,而Pipeline Model是一个Transformer。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值