《零基础入门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可用于作业内的代码复用,或是作业间的代码复用。

相关推荐
David猪大卫3 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger3 小时前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习
星恒随风3 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
fengci.4 小时前
CTF2MISC中等部分
开发语言·前端·学习
YueTann6 小时前
mgtv5th-baseline学习
学习
蒸蒸yyyyzwd8 小时前
从后端面经学到的 3 个知识
笔记·学习
17岁的勇气8 小时前
Unity Shader unity文档学习笔记(二十二):shader变体
笔记·学习·unity
坤坤子吖8 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
路灯上の马陈10 小时前
Java 内部类 学习笔记
笔记·学习
希和202710 小时前
51 单片机入门笔记:江科大课程代码逐行讲解(按键控制 LED 流水灯)
笔记·单片机·mongodb