基于梯度提升决策树的组合特征方法,《百面机器学习》学习笔记

《百面机器学习》学习笔记:基于梯度提升决策树的组合特征方法

  • 基于梯度提升决策树的组合特征方法
    • 梯度提升决策树
    • 这里举一个例子来说明梯度提升决策树的思想方法
    • 为了更好地说明如何使用梯度提升决策树来实现对特征的组合,再举一个例子
    • 假设对于某种类型的输入,经过上述介绍的梯度提升决策树构建流程得到的模型如下图所示

基于梯度提升决策树的组合特征方法

梯度提升决策树

梯度提升决策树(Gradient Boosting Decision Trees)是一种集成学习方法,它通过逐步迭代地训练决策树模型来提高预测性能。该方法的原理可以分为两个主要部分:梯度提升和决策树。

梯度提升(Gradient Boosting)
梯度提升是一种迭代的优化过程,通过逐步优化模型的损失函数来提高模型的预测能力。它基于前一轮迭代的模型的预测结果和真实标签之间的残差(即差异),来训练下一轮迭代的模型。具体步骤如下:
a. 首先,使用一个初始的弱模型(如决策树)作为基础模型进行预测。
b. 计算基础模型的预测结果与真实标签之间的残差。
c. 使用这些残差作为目标值,训练下一个弱模型,以尝试减少这些残差。
d. 将当前模型的预测结果与新模型的预测结果相加,形成一个新的预测结果。
e. 重复步骤b-d,直到达到预先定义的迭代次数或损失函数收敛。

决策树(Decision Trees)
决策树是一种基本的机器学习模型,它通过一系列的决策规则对数据进行分类或回归。在梯度提升中,决策树被用作弱模型,也称为弱学习器。每一轮迭代中,都会训练一个新的决策树来捕捉之前模型预测的残差。决策树的生成过程如下:
a. 首先,选择一个特征和切分点,将数据集划分为两个子集。
b. 使用某种准则(如最小化基尼指数或最小化均方差)来确定最佳的特征和切分点。
c. 递归地重复步骤a-b,直到达到预定义的停止条件(如达到最大深度或节点中的样本数量小于某个阈值)。
d. 每个叶节点上的值为该叶节点中样本的平均值(对于回归问题)或多数类别(对于分类问题)。

梯度提升决策树通过反复迭代上述两个步骤,每一轮迭代都试图减少前一轮模型的残差,从而提高整体模型的预测性能。在每一轮迭代中,新的决策树被训练来捕捉前一轮模型预测的残差,然后将其加入到模型中,形成一个更强大的集成模型。

最终的模型是所有迭代过程中生成的决策树的加权和,其中每棵树的权重取决于其在迭代过程中的性能表现。在预测阶段,新样本通过依次经过所有决策树,并将它们的预测结果相加,得到最终的预测值。

这里举一个例子来说明梯度提升决策树的思想方法

假设任务为使用现有的训练数据集来拟合一个模型,使其具有根据房屋面积来预测房屋价格的能力。

给出训练数据如下:

房屋面积价格(标签)
1000550000
1500650000
2000720000
2500820000
3000900000

在初始阶段,首先选定一个基本的弱模型,这里选择决策树模型作为基础模型。然后使用上述5组数据的价格平均数作为初始的模型预测值,那么初始的预测值如下表所示:

房屋面积(特征)价格(标签)初始预测价格
1000550000704000
1500650000704000
2000720000704000
2500820000704000
3000900000704000

然后,使用当前模型的预测结果与真实标签之间的残差,即实际价格和预测价格之间的差值。然后,这些残差将成为下一轮模型迭代的目标值。

房屋面积(特征)价格(标签)初始预测价格残差
1000550000704000-154000
1500650000704000-54000
200072000070400016000
2500820000704000116000
3000900000704000196000

接着,使用上述表格中的残差作为目标值,训练一个新的决策树来捕捉这些残差的模式。新的决策树将尝试减少上一轮模型的残差。

当新的决策树训练完成之后,可以将其预测结果与之前的预测结果相加,得到一个新的预测结果如下表所示。

房屋面积(特征)价格(标签)初始预测价格残差新预测价格
1000550000704000-154000550000
1500650000704000-54000596000
200072000070400016000720000
2500820000704000116000820000
3000900000704000196000900000

然后,继续计算新预测价格与真实标签之间的残差,再次作为目标值。

房屋面积(特征)价格(标签)初始预测价格残差新预测价格新残差
1000550000704000-1540005500000
1500650000704000-5400059600054000
2000720000704000160007200000
25008200007040001160008200000
30009000007040001960009000000

然后进行下一轮的迭代,训练另外一个决策树来捕捉新残差的模式,并将其预测结果与之前的预测结果相加。

不断重复上述过程,每一轮迭代都试图减少前一轮模型的残差,直到达到预先定义的迭代次数或损失函数收敛。

最终得到的模型为所有迭代中生成的决策树模型的加权和,其中每棵树的权重取决于其在迭代过程中的性能表现。

为了更好地说明如何使用梯度提升决策树来实现对特征的组合,再举一个例子

假设任务为使用模型来预测一个人的年龄,训练集有A B C D四个人,他们的年龄分别为14、16、24、26,其每个人的特征包含:月购物金额、上网时长、上网历史等。那么,从头开始训练一个决策树如下:
在这里插入图片描述
首先,使用购物金额来得到第一棵树,求得每个样本预测值与真实值之间的残差;

然后,使用得到的残差作为目标值,来训练另外一棵树使得残差尽可能的收敛到某个阈值以下,或者树的总数达到某个上限为止。

由于在上述构建GBDT的过程是利用残差训练的,在预测过程中,需要将所有数的预测值加起来,得到最终的预测结果。

假设对于某种类型的输入,经过上述介绍的梯度提升决策树构建流程得到的模型如下图所示

在这里插入图片描述
上图引自《百面机器学习》,图中为典型决策树。其中,共有四种特征组合方式:
(1)用户类型=付费用户+年龄 ≤ \leq 40;
(2)用户类型=付费用户+物品类型=食品;
(3)年龄 ≤ \leq 35+物品类型=护肤;
(4)年龄 ≤ \leq 35+性别=女;

现在给出两个样本,分别如下:

是否点击年龄性别用户类型物品类型
28免费护肤
36付费食品

那么按照上述四种特征组合方式来说,上表中第一个样本可以编码为(0,0,1,1),因为该样本只满足(3)(4)组合特征,但并不满足(1)(2)组合特征;同理,对于上表中的第二个样本可以编码为(1,1,0,0),因为该样本同时满足(1)(2)组合特征,但不满足(3)(4)组合特征。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nuxt学习笔记

创建项目 npx create-nuxt-app projectName SSR 渲染流程 客户端发送 URL 请求到服务端,服务端读取对应的 URL 的模板信息,在服务端做出 HTML 和数据的渲染,渲染完成之后返回整个 HTML 结构给客户端。所以用户在浏览首屏的时候速度会比较快…

物联网| 定时器计数器开发之中断方法|定时器中断处理函数|完整测试代码|物联网之蓝牙4.0 BLE基础-学习笔记(6)

文章目录 11 定时器计数器开发之中断方法定时器中断处理函数:完整测试代码: 11 定时器计数器开发之中断方法 LED控制电路同前节: CC2530的T3定时器(8位)需要了解T3GJL,T3CCTLO,T3CCO,T3CCTL1,T3CC寄存器。如下表所示: 按照表格…

像素画板-第14届蓝桥杯省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第133讲。 像素画板,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程初级组真题第4题&#xf…

从C出发 31 --- 指针专题经典问题剖析

int a 0; int* p &a; //p作为指针指向了a, p 保存的是a 变量的内存地址,// p 这个指针本质是变量,这个变量有没有内存地址?// 有内存地址,为什么?// 因为它作为变量,肯定要占用内存空间的// p 这个变…

Java EE 初阶---多线程(三)

五、阻塞队列 目录 五、阻塞队列 5.1 阻塞队列是什么 ? 5.1.1 生产者消费者模型 ​编辑 5.1.2 标准库中的阻塞队列 5.1.3 消息队列 5.1.4 消息队列的作用 5.2 实现一个阻塞队列 虚假唤醒 六、线程池 6.1 线程池是什么? 6.2 怎么使用线程池&#xf…

多媒体基础

第九章、多媒体基础 1、多媒体技术基本概念 1.1、音频相关概念 超声波的频率通常在20千赫兹以上,无法被人类的耳朵听到,常用于医疗诊断、非破坏性材料测试、清洗、测量等领域 次声波的频率通常在20赫兹以下,同样无法被人类的耳朵听到&…

数据库缓存服务——NoSQL之Redis配置与优化

一、缓存概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存…

11个超好用的SVG编辑工具

SVG的优势在于SVG图像可以更加灵活,自由收缩放大而不影响图片的质量,一个合适的SVG编辑工具能够让你的设计事半功倍,下面就一起来看看这些冷门软件好用在哪里。这11个超好用的SVG编辑工具依次为:即时设计、Justinmind、Sketsa SVG…

MATLAB绘制动画(二)擦除动画

如果我们在绘制图形之后将原有的图形擦除,并重新绘制,看上去就像动画了 示例: t 0; m [sin(t);cos(t)]; p plot(t,m,EraseMode,background,MarkerSize,5); x -1.5*pi; axis([x x2*pi -1.5 1.5]); grid onfor i 1:100t [t 0.1*i];m [m [sin(0.1*i…

BitKeep逆势崛起:千万用户的信任,终点还未到来

在全球范围内,BitKeep钱包如今已拥有超过千万忠实用户。 当我得知这一令人震撼的数字时,既感到惊讶,同时也觉得这是意料之中的事情。几年来关注BitKeep的发展历程,我深切地感受到了这家公司的蓬勃壮大。回顾2018年他们发布的第一个…

JVM 堆

堆的核心概述 一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的核心区域Java 堆区在 JVM 启动的时候即被创建,其空间大小也就确定了。是 JVM 管理的最大一块内存空间堆可以处于物理上不连续的内存空间中,但是在逻辑上它应该被视为连续…

airserver7.2.7最新中文版下载及功能介绍

最近开会打算把手机投屏到自己的Mac上演示用,于是就打算用下听了很久好用但是一值没有使用的AirServer!十分简单的操作就可以完美的投屏到Mac电脑,而且不用像Mac自带的QuickTime用线连接手机!它可以把AirPlay / AirTunes上的音频、视频、照片、幻灯片还有…

对称算法模式-GCM(Galois/Counter Mode)

以下内容来自《NIST Special Publication 800-38D November, 2007》- Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC。 链接在此 AES Galois/Counter Mode 1. 加密步骤 2. 解密步骤 3. GCTR函数 4. GHASH函数 5. 块数据乘法 6. C…

大势智慧软硬件技术答疑第三期

1.重建大师6.0试用版,怎么导出DOM、DEM? 答:需要先生成三维模型,然后再提交产品选择DOM和DEM。 2.麻烦问下,修模出来贴的纹理图片,导出osgb后再打开就模糊了是什么情况? 答:拿高清…

【学习笔记-myabtis】使用mybtis对接pgsql的postgis插件,获取地理字段Geometry信息

使用mybtis对接pgsql的postgis插件,获取地理字段geometry信息 参考资料: Mybatis 自定义TypeHandler - 邓维-java - 博客园 1、如何使用typehandler ​ 相信大家用Mybatis这个框架至少一年以上了吧,有没有思考过这样一个问题:数据…

Hello, Mojo——首次体验Mojo语言

Hello, Mojo——首次体验Mojo语言 文章目录 Hello, Mojo——首次体验Mojo语言一、前言二、Mojo有哪些独特的功能使它不同于Python?三、可以在 Mojo 中导入和使用的 Python 哪些包?四、为什么参数化在 Mojo 中对于使用 SIMD 类型和硬件加速器很重要&#…

[Orillusion]-使用 -windwos-4行命令

前两天看了webgpu的开源库Orillusion | 专业 WebGPU 引擎 Orillusion感觉很不错的样子,准备试一下。因为都是做OpenGL和windows桌面端。 web有点小陌生,记录一下。 准备: Google Chrome Canary 最新版,老版本有问题 nodejs 版…

k8s架构了解

Kubernetes(k8s)是用于自动部署、扩展和管理“容器化应用程序”的开源系统 k8s由control plane以及cluster nodes构成 control plane control plane是维护所有k8s对象记录的系统,持续管理着对象状态,并且对集群的变化做出响应,并使状态匹…

matlab实验三程序设计与优化

学聪明点,自己改,别把我卖了 一、实验目的及要求 一、实验的目的与要求 1、掌握 MATLAB的函数 2、掌握 MATLAB的程序流 3、掌握 MATLAB脚本和函数文件的编写 4、熟悉基于矩阵的程序设计与优化 二、实验原理 1、MATLAB的M文件:脚本文件与函数…

MMM(Master-Master replication manager for MySQL)

MMM(Master-Master replication manager for MySQL,MySQL主主复制管理器) 是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发,主要用来监控和管理 MySQL Master-Master (双主)复制&…