《零基础入门Spark》学习笔记 Day 12

以GBDT和随机森林为例,它们处理数据的过程是相似的,原始数据都是经过StringIndexer、VectorAssembler和VectorIndexer这三个环节转化为训练样本,只不过GBDT最后用GBTRegressor来做回归,而随机森林用RandomForestClassifier来做分类

Spark MLlib Pipeline

Pipeline是一套基于DataFrame的高阶开发API,它让开发者以一种高效的方式,来打造端到端的机器学习流水线。

Pipeline的核心组件有两类,一类是Transformer,另一类是Estimator,这两个都属于转换器,比如StringIndexer、MinMaxScaler、Bucketizer、VectorAssembler

TransFormer

TransFormer的输入是DataFrame,输出也是DataFrame。都实现了setInputCol和setOutputCol这两个方法

优势:

  • 并行计算:与 RNN 不同,Transformer 可以并行处理整个序列,显著提高训练速度。
  • 长距离依赖:自注意力机制能够直接捕捉序列中任意位置之间的关系。
  • 可扩展性:通过堆叠更多层或增加模型尺寸,可以显著提升性能。

Estimator

Estimator是TensorFlow中的一个高级API,用于简化机器学习模型的训练、评估和预测过程。它提供了一种封装好的方式,可以快速构建和部署模型,特别适合生产环境。对比TransFormer,Estimator要简单点,它实际上就是各类模型算法,如随机森林、线性回归等,核心接口只有一个,就是fit

优势:

Estimator的设计使得代码更易于维护和扩展。它内置了模型检查点、日志记录和分布式训练支持,减少了开发者的重复工作。Estimator还支持自定义模型,灵活性较高。

构建Pipeline

一个Pipeline可以包含多个Transformer和Estimator,但最后一个环节必须是Estimator。Pipeline fit方法的输出结果,即是训练好的机器学习模型。它的核心优势是提升机器学习应用的开发效率,并同时消除测试样本与训练样本之间不一致这一致命隐患。Pipeline可用于作业内的代码复用,或是作业间的代码复用。

相关推荐
果壳science2 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
ha_lydms2 小时前
Window Functions(窗口函数)
大数据·数据仓库·hadoop·spark·数据处理·dataworks·maxcompute
大叔学Linux3 小时前
FreeRTOS任务切换笔记
arm开发·笔记
爱吃火鸡面呀4 小时前
Spark RDD 行动算子(Action)详解
windows·ajax·spark
别动我齐刘海4 小时前
机器人 C++ / 系统联调补强2——异常处理、Protobuf
linux·c++·人工智能·学习·算法·机器学习·机器人
一直C4 小时前
嵌入式 Linux 驱动开发学习笔记:内核定时器、platform 总线与 I²C 驱动
linux·驱动开发·嵌入式硬件·学习·imx6ull
承渊政道4 小时前
Linux网络学习【传输层协议UDP】
linux·网络·网络协议·学习·ubuntu·udp
andrsted4 小时前
练题簿免费刷题小程序:和学习搭子共用一份题库,一起刷题复习
学习·面试·微信小程序·小程序·学习方法·刷题
fqbqrr5 小时前
2610学习,ahk学习技巧
学习
fengci.5 小时前
BUUCTF(困难部分)
android·开发语言·前端·学习·php