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

相关推荐
世人万千丶8 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
遇乐的果园11 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
遇乐的果园12 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_13 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky13 小时前
AI Agent 学习
人工智能·学习
摇滚侠13 小时前
Java 全栈开发实战教程 课程笔记 29-33
笔记
茯苓gao14 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
whyTeaFo14 小时前
GAMES101: Lecture 9: Shading 3(Texture Mapping cont.) ppt笔记
笔记
RD_daoyi15 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
chase。16 小时前
【学习笔记】PointWorld:迈向通用机器人操控的3D世界模型
笔记·学习·机器人