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

相关推荐
柳鲲鹏6 小时前
李善兰和牛顿,谁剽窃谁的运动三定律
笔记
aacd27196 小时前
C语言之预处理详解ヾ(•ω•`)o
c语言·学习
笨鸟先飞的橘猫6 小时前
广播风暴架构优化方案思考
学习·架构
zhangrelay7 小时前
三分钟云课实践速通--大学物理--python 版
linux·开发语言·python·学习·ubuntu·lubuntu
炽烈小老头7 小时前
【每日天学习一点算法 2026/04/27】缺失的第一个正数
学习·算法
handler017 小时前
Linux 进程探索:从 PCB 管理到 fork() 的写时拷贝
linux·c语言·c++·笔记·学习
QiZhang | UESTC7 小时前
从基础 RoPE 到 YaRN:源码学习路线揭秘
pytorch·深度学习·学习
xuhaoyu_cpp_java7 小时前
MyBatis学习(五)
经验分享·笔记·学习·mybatis
ECT-OS-JiuHuaShan8 小时前
整体论体系定理,全球开放,无法绕过
人工智能·科技·学习·算法·生活
AI_661465978 小时前
副业平台收益效率评估:实验设计、指标体系与数据分析框架
经验分享·笔记