当前位置: 首页 > news >正文

大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森铃 Bagging Boosting

点一下关注吧!!!非常感谢!!持续更新!!!

大模型篇章已经开始!

  • 目前已经更新到了第 22 篇:大语言模型 22 - MCP 自动操作 Figma+Cursor 自动设计原型

Java篇开始了!

  • MyBatis 更新完毕
  • 目前开始更新 Spring,一起深入浅出!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(已更完)
  • Prometheus(已更完)
  • Grafana(已更完)
  • 离线数仓(已更完)
  • 实时数仓(正在更新…)
  • Spark MLib (正在更新…)

在这里插入图片描述

集成学习

不指望单个弱模型“包打天下”,而是构造一簇互补的基学习器并让它们投票/加权,用“群体智慧”提升泛化能力、稳定性和鲁棒性。

基本定义

在这里插入图片描述
集成学习通过建立几个模型来解决单一预测问题,它的工作原理是生成多个分类器/模型,各自独立的学习和做出预测,这些预测最后结合成组合预测,因为优于任何一个单分类的做出预测。

集成学习分类

● 任务一:如何优化训练数据 - 主要用于解决欠拟合问题
● 任务二:如何提升泛化性能 - 主要用于解决过拟合问题

在这里插入图片描述
只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的。

Bagging

集成原理

目标

把下面的圈和方块进行分类
在这里插入图片描述

采集不同的数据集

在这里插入图片描述

训练分类器

在这里插入图片描述

平权投票

获取最终结果
在这里插入图片描述

随机森林

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由所有树输出的类别的众数而定。
随机森林 = Bagging + 决策树
在这里插入图片描述
例如,如果你训练了5个树,其中有4个树的结果是True,1个树的结果是False,那么最终投票的结果就是True,随机森林构造过程中的关键步骤(M表示特征数目):
● 一次随机选出部分样本,有放回的抽样,重复N次(有可能出现重复的样本)
● 随机去选出 m 个特征,m << M,建立决策树

Boosting

基本概念

随着学习的积累从弱到强,简而言之:每新加入一个弱学习器,整体能力就会得到提升
在这里插入图片描述
代表算法:Adaboost、GBDT、XGBoost、LightGBM

Spark MLlib 的 GBT 相当于 “纯原生 Java/Scala 实现的 GBDT”,功能和速度距现代竞赛级框架(XGBoost / LightGBM / CatBoost)仍有差距。工业界常用以下两条路线把先进算法接进 Spark Pipeline:

  • XGBoost4J‑Spark:将每个 XGBoost worker 嵌入 Spark executor,天然支持 GPU / CPU 分布式;API 兼容 ML Pipeline,可与 VectorAssembler、ParamGridBuilder 协同工作。
  • LightGBM‑Spark(microsoft/synapseml):基于 LightGBM 的梯度直方、Leaf‑wise growth,训练速度较快,支持类别特征原生处理与分布式训练。

使用方式大体一致: 把 XGBoostClassifier 或 LightGBMRegressor 替换到 Pipeline 里,并确保 依赖 JAR 与 native lib 在所有 executor 可见。常见踩坑点:

  • 内存分配:XGBoost 需要 executor 拥有足够的 off‑heap;通过 spark.executor.memoryOverhead 和 spark.executor.cores 调整。
  • 数据格式:必须把特征向量转成 Dense 或 Sparse Vector; 并避免 StringIndexer 将类别特征过度 one‑hot,使维度爆炸。
  • GPU 调度:需要 spark.task.resource.gpu.amount=1 并在 YARN/K8s 上配置 spark.executor.resource.gpu.amount。

实现过程

训练第一个学习器

在这里插入图片描述

调整数据分布

在这里插入图片描述

训练第二个学习器

在这里插入图片描述

再次调整数据分布

在这里插入图片描述

学习器训练及数据分布调整

在这里插入图片描述

整体过程

在这里插入图片描述

http://www.lqws.cn/news/69751.html

相关文章:

  • MySQL数据库从0到1
  • 基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
  • 监控 100 台服务器磁盘内存CPU利用率
  • MPTCP 聚合吞吐
  • StarRocks部署方案详解:从单机到分布式集群
  • TDengine 的 AI 应用实战——电力需求预测
  • 【存储基础】存储设备和服务器的关系和区别
  • 第1篇:数据库中间件概述:架构演进、典型方案与应用场景
  • 序列搜索策略
  • PromQL 快速上手
  • 4.RV1126-OPENCV 图像轮廓识别
  • 【SpringBoot】| 接口架构风格—RESTful
  • 什么是 CPU 缓存模型?
  • 深入探讨redis:缓存
  • vue-13(延迟加载路由)
  • Vue-6-前端框架Vue之基于Plotly.js绘制曲线
  • 【软件测试】web自动化:Pycharm+Selenium+Firefox(一)
  • WebSocket与Reactor模式:构建实时交互应用
  • Qt OpenGL 实现交互功能(如鼠标、键盘操作)
  • 【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数
  • [Java恶补day13] 53. 最大子数组和
  • AI大数据模型如何与thingsboard物联网结合
  • 基于SpringBoot运动会管理系统设计和实现(源码+文档+部署讲解)
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开关机对话框
  • 【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析
  • (LeetCode 每日一题)135. 分发糖果 ( 贪心 )
  • 基于Python学习《Head First设计模式》第三章 装饰者模式
  • Spring Security入门:创建第一个安全REST端点项目
  • 好用的C/C++/嵌入式 IDE: CLion的下载安装教程(保姆级教程)
  • 黑马Java面试笔记之 微服务篇(SpringCloud)