大数据-276 Spark MLib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树

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

大模型篇章已经开始!

  • 目前已经更新到了第 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和Boosting区别

数据方面

● Bagging:对数据进行采样训练
● Boosting:根据前一轮学习结果调整数据的重要性

投票方面

● Bagging:所有学习器平权投票
● Boosting:对学习器进行加权投票

学习顺序

● Bagging:学习是并行的,每个学习器没有依赖关系
● Boosting:学习是串行的,学习有先后顺序

主要作用

● Bagging:主要用于提高泛化性能,解决过拟合
● Boosting:主要用于提高训练精度,解决欠拟合

GBDT

基本介绍

GBDT的全称是:Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上是TOP3的算法。

Decision Tree

无论是处理回归问题还是二分类还是多分类问题,GBDT使用的决策树统统都是CART回归树。
对于回归树算法来说最重要的是寻找最佳的划分点,那么回归树中可划分点包含了所有的特征的所有可取的值。
在分类树中最佳划分点的判断标准是熵或者基尼系数,都是纯度来衡量的,但是在回归树中的样本标签华四连续数值,所以再使用熵之类的指标不再合适,取而代之的是平方误差,他能很好的评判拟合程度。

回归决策树

不管是回归决策树还是分类决策树,都会存在两个问题:
● 如何选择划分点?
● 如何决定叶节点的输出值?

一个回归树对应输入空间(即特征空间)的一个划分以及在划分单元上的输出值。分类决策树中,采用的信息论中的方法信息增益以及信息增益率,通过计算选择最佳划分点。

在回归树中,采用的是启发式的方法,假设数据集有 n 个特征:
在这里插入图片描述
假设将输入空间划分为M个单元,R1、R2…Rm,那么每个区域的输出值就是:cm = avg(yi | xi ∈ Rm) 也就是该区域内所有点y值的平均数

举例:
如下图,加入要对楼内居民的年龄进行回归,将楼划分为3个区域R1,R2,R3,那么R1的输出就是第一列居民年龄的平均值,R2输出的就是第二列居民年龄的平均值,R3的输出就是第三、四列八个居民年龄的平均值
在这里插入图片描述

算法流程

输入:训练数据集D
输出:回归树 f(x)
在训练数据集所在的输入空间中,递归的将每个区域划分为两个子区域并决定每个子区域上的输出值,构建二叉决策树:
1.选择最优切分特征j与切分点s,求解:

在这里插入图片描述
遍历特征j对固定的切分特征j扫描切分点s,选择使得上式达到最小值的对(j,s)

2.用选定的对(j,s)划分区域并决定相应的输出值:
在这里插入图片描述
3.继续对两个子区域调用步骤(1)和(2),直到满足停止条件。
4.将输入空间划分M个区域 R1,R2…Rm,生成决策树:
在这里插入图片描述

测试案例

通过一个实例加深对回归决策树的理解

训练数据

训练数据见下表
在这里插入图片描述

计算过程

选择最优的切分特征j与最优切分点s:
● 确定第一个问题:选择最优切分特征:在本数据集中,只有一个特征,因此最优切分特征自然是X
● 确定第二个问题:我们考虑9个切分点[1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5]:损失函数定义平方损失函数 Loss(y,f(x))= (f(x) - y) -y)^2,将上述9个切分点依次带入下面的公式 cm=avg(yi | xi ∈ Rm)

计算子区域的输出值:
例如:取 s = 1.5,此时 R1 = {1}, R2 = {2,3,4,5,6,7,8,9,10},这两个区域的输出值分别为:
● c1 = 5.56
● c2 = (省略…) = 7.50

同理,可以得到其他各切分点的子区域输出值,如下表所示:
在这里插入图片描述

计算损失函数值,找到最优切分点:
把c1,c2的值代入到同平方损失函数 Loss(y, f(x)) = (f(x)- y) ^ 2
当 s = 1.5 时

在这里插入图片描述
同理,计算得到其他各切分点的损失函数值,可获得下表:
在这里插入图片描述
显然取 s = 6.5 时,m(s)最小,因此,第一个划分变量【j=x, s=6.5】

用选定的 (j, s) 划分区域,并决定输出值:
● 两个区域分别是 R1={1,2,3,4,5,6}, R2={7,8,9,10}
● 输出值 cm = avg(yi | xi ∈ Rm),c1 = 6, c2 = 8.91

调用步骤(1)、(2),继续划分,对R1继续划分:
在这里插入图片描述
取切分点[1.5,2.5,3.5,4.5,5.5],则各区域的输出值c如下表:
在这里插入图片描述
计算损失函数m(s):
在这里插入图片描述

s=3.5,m(s)最小。

生成回归树:
假设在生成3个区域之后停止划分,那么最终生成的回归树形式如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS 5】如何优化 Harmony-Cordova 应用的性能?

以下是针对 ‌Harmony-Cordova 应用性能优化‌的完整方案,结合鸿蒙原生特性和Cordova框架优化策略: ‌⚡一、渲染性能优化‌ ‌减少布局嵌套层级‌ 使用扁平化布局(如 Grid、GridRow)替代多层 Column/Row 嵌套,避免冗…

数据库管理-第332期 大数据已死,那什么当立?(20250602)

数据库管理332期 2025-06-02 数据库管理-第332期 大数据已死,那什么当立?(20250602)1 概念还是技术2 必然的大数据量3 离线到实时4 未来总结 数据库管理-第332期 大数据已死,那什么当立?(202506…

相机--RGBD相机

教程 分类原理和标定 原理 视频总结 双目相机和RGBD相机原理 作用 RGBD相机RGB相机深度; RGB-D相机同时获取两种核心数据:RGB彩色图像和深度图像(Depth Image)。 1. RGB彩色图像 数据格式: 标准三通道矩阵&#…

神经符号集成-三篇综述

讲解三篇神经符号集成的综述,这些综述没有针对推荐系统的,所以大致过一下,下一篇帖子会介绍针对KG的两篇综述。综述1关注的是系统集成和数据流的宏观模式“是什么”;综述3关注的是与人类理解直接相关的中间过程和决策逻辑的透明度…

window/linux ollama部署模型

模型部署 模型下载表: deepseek-r1 win安装ollama 注意去官网下载ollama,这个win和linux差别不大,win下载exe linux安装ollama 采用docker方式进行安装: OLLAMA_HOST=0.0.0.0:11434 \ docker run -d \--gpus all \-p 11434:11434 \--name ollama \-v ollama:/root/.ol…

计算A图片所有颜色占B图片红色区域的百分比

import cv2 import numpy as npdef calculate_overlap_percentage(a_image_path, b_image_path):# 读取A组和B组图像a_image cv2.imread(a_image_path)b_image cv2.imread(b_image_path)# 将图像从BGR转为HSV色彩空间,便于颜色筛选a_hsv cv2.cvtColor(a_image, c…

每日算法 -【Swift 算法】盛最多水的容器

盛最多水的容器:Swift 解法与思路分析 📌 问题描述 给定一个长度为 n 的整数数组 height,每个元素表示在横坐标 i 处的一条垂直线段的高度。任意两条线段和 x 轴构成一个容器,该容器可以装水,水量的大小由较短的那条…

云原生安全基础:Linux 文件权限管理详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 在云原生环境中,Linux 文件权限管理是保障系统安全的核心技能之一。无论是容器化应用、微服务架构还是基础设施即代码(IaC&#xf…

TypeScript 中的字面量类型(Literal Types)

在 TypeScript 中,字面量类型(Literal Types)是一种特殊的类型,它允许你将变量的类型限制为某个具体的值(如特定的字符串、数字或布尔值),而不仅仅是宽泛的类型(如 string、number&a…

晶台光耦在手机PD快充上的应用

光耦(光电隔离器)作为关键电子元件,在手机PD快充中扮演信号隔离与传输的“安全卫士”。其通过光信号实现电气隔离,保护手机电路免受高电压损害,同时支持实时信号反馈,优化充电效率。 晶台品牌推出KL817、KL…

python学习打卡day43

DAY 43 复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 浙大疏锦行 数据集使用猫狗数据集,训练集中包含猫图像4000张、狗图像4005张。测试集包含猫图像1012张,狗图像1013张。以下是数据集的下…

大数据与数据分析【数据分析全栈攻略:爬虫+处理+可视化+报告】

- 第 100 篇 - Date: 2025 - 05 - 25 Author: 郑龙浩/仟墨 大数据与数据分析 文章目录 大数据与数据分析一 大数据是什么?1 定义2 大数据的来源3 大数据4个方面的典型特征(4V)4 大数据的应用领域5 数据分析工具6 数据是五种生产要素之一 二 …

uniapp 开发企业微信小程序,如何区别生产环境和测试环境?来处理不同的服务请求

在 uniapp 开发企业微信小程序时,区分生产环境和测试环境是常见需求。以下是几种可靠的方法,帮助你根据环境处理不同的服务请求: 一、通过条件编译区分(推荐) 使用 uniapp 的 条件编译 语法,在代码中标记…

青少年编程与数学 02-020 C#程序设计基础 15课题、异常处理

青少年编程与数学 02-020 C#程序设计基础 15课题、异常处理 一、异常1. 异常的分类2. 异常的作用小结 二、异常处理1. 异常处理的定义2. 异常处理的主要组成部分3. 异常处理的作用小结 三、C#异常处理1. 异常的基本概念2. 异常处理的关键字3. 异常处理的流程4. 自定义异常5. 异…

云原生时代 Kafka 深度实践:05性能调优与场景实战

5.1 性能调优全攻略 Producer调优 批量发送与延迟发送 通过调整batch.size和linger.ms参数提升吞吐量: props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384); // 默认16KB props.put(ProducerConfig.LINGER_MS_CONFIG, 10); // 等待10ms以积累更多消息ba…

在 Dify 项目中的 Celery:异步任务的实现与集成

Celery 是一个强大而灵活的分布式任务队列系统,旨在帮助应用程序在后台异步运行耗时的任务,提高系统的响应速度和性能。在 Dify 项目中,Celery 被广泛用于处理异步任务和定时任务,并与其他工具(如 Sentry、OpenTelemet…

Pytorch Geometric官方例程pytorch_geometric/examples/link_pred.py环境安装教程及图数据集制作

最近需要训练图卷积神经网络(Graph Convolution Neural Network, GCNN),在配置GCNN环境上总结了一些经验。 我觉得对于初学者而言,图神经网络的训练会有2个难点: ①环境配置 ②数据集制作 一、环境配置 我最初光想…

2025年微信小程序开发:AR/VR与电商的最新案例

引言 微信小程序自2017年推出以来,已成为中国移动互联网生态的核心组成部分。根据最新数据,截至2025年,微信小程序的日活跃用户超过4.5亿,总数超过430万,覆盖电商、社交、线下服务等多个领域(WeChat Mini …

互联网向左,区块链向右

2008年,中本聪首次提出了比特币的设想,这打开了去中心化的大门。 比特币白皮书清晰的描述了去中心化支付的解决方案,并分别从以下几个方面阐述了他的理念: 一、由转账双方点对点的通讯,而不通过中心化的第三方&#xf…

PV操作的C++代码示例讲解

文章目录 一、PV操作基本概念(一)信号量(二)P操作(三)V操作 二、PV操作的意义三、C中实现PV操作的方法(一)使用信号量实现PV操作代码解释: (二)使…