1 GBDT:梯度提升决策树

       1 前言

        前面简单梳理的基本的决策树算法,那么如何更好的使用这个基础算法模型去优化我们的结果是本节要探索的主要内容。

        梯度提升决策树(Gradient Boosting Decision Trees)是一种集成学习方法,通常用于解决回归和分类问题。它通过串联多棵决策树来构建一个强大的模型。在训练过程中,每棵树(CART树)都试图纠正前一棵树的错误,以逐步改进模型的性能。

        在boosting算法家族中,除了adaboost会使用分类决策树为基学习器以外,其余算法如GBDT、XGBoost等,都是建立在CART回归树的基础上,换句话说就是不管处理分类问题还是回归问题,基学习器都是CRAT回归树

2 梯度提升树

2.1 整体架构

       提升方法实际采用加法模型(即基函数的线性组合)与前向分步算法。以决策树为基函数的提升方法称为提升树(boosting tree)。

2.1.1 提升树算法

提升树算法采用前向分步算法 :

f_{0}(x) = 0

f_{1} (x)= T_{1}(x;\phi _{1}) + f_{0}(x)

...

f_{m} (x)= T_{m}(x;\phi _{m}) + f_{m-1}(x)

通过经验风险最小化确定参数,

\hat{\phi }_{m} = argmin\sum_{i=1}^{N}L(y_{i},f_{m-1}(x_{i})+T(x_{i});\phi _{m}))

简单来说,前面大众(继承树)没有完成的由后面的人(决策树)继续完成。

2 CART树

1 回归树

ref: 决策树一一CART算法(第三部分)-CSDN博客


输入: 训练数据集D;

输出:回归树f(x);

  1. 循环遍历每个特征 j ,每个特征的值 c:寻找最佳分割点(左边是c_1, 右边是c_2):
  2. \underset{j,s}{min}[ \underset{c_{1}}{min}\sum_{x_{i} \epsilon R_{1}(j,s) } (y_{i}-c_{1})^2) + \underset{c_{2}}{min}\sum_{x_{i} \epsilon R_{1}(j,s) } (y_{i}-c_{2})^2) ]
  3. 选定j,s之后,对数据进行切分,计算切分之后的区域值大小(改区域样本的均值)。

               \hat{c}_{1} = avg(y_{i}|x_{i}, x_{i}\epsilon R_{1}(j,s)))

                \hat{c}_{2} = avg(y_{i}|x_{i}, x_{i}\epsilon R_{2}(j,s))); 

  • 4 继续迭代,一直到满足条件为止;

分类树

2 GDBT算法原理

         GBDT 无论分类还是回归基本树都是cart,每一颗的树都是去弥补前面树的不足(即残差:真实值与预测值之间的差异),然后一步一步的迭代。

        何以梯度能够代表残差呢?如果损失函数是平方损失或者指数损失时候,按照拟合残差的原理每一步优化就很直观,但是其他损失函数呢?

                                                     损失函数求导: -[\frac{\partial L(y,f(x_{i}))}{\partial f(x_{i})}]_{f(x_{i})=f_{m-1}(x_{i})}

                                                     L(y,f(x)) = \frac{(y-f(x))^2}{2}\\\\ -[\frac{\partial L(y,f(x))}{\partial f(x)}] = y-f(x)

二分类

损失函数求导过程:

l = loss(y_i,\hat{y}_i))) = - \sum (y_ilog\hat{y}_i +(1-y_i)log(1-\hat{y}_i))\\ \frac{\partial l}{\partial f(x)} = -(\sum y_ilog\frac{\hat{y_i}}{1-\hat{y_i}} + log(1-\hat{y_i})\\ 1 - \hat{y_i} = \frac{1}{1+e^{f(x_i)}}\\ \hat{y_i} = \frac{e^{f(x_i) }}{1+e^{f(x_i)} }\\ l = -(\sum y_if(x_i)) + log(1+e^{f(x_i) })\\ \frac{\partial l}{\partial f(x)} = y_i - f(x_i)

多分类

多分类我们在训练的时候,是针对样本X每个可能的类都训练一个分类回归树。

总之二分类 一棵树,多分类多棵树。

3 面试常见题目

  • gbdt如何选择特征?

        遍历每一个点,分裂后误差(损失函数)最小的,就是最优的。 原始的gbdt的做法非常的暴力,首先遍历每个特征,然后对每个特征遍历它所有可能的切分点。

ref: GBDT算法原理及实战-CSDN博客

ref: GBDT算法详解&算法实例(分类算法)_gbdt二分类预测值-CSDN博客

ref:决策树一一CART算法(第三部分)_cart树案例-CSDN博客

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

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

相关文章

【Redis 神秘大陆】009 案例实践进阶

九、案例实践&进阶方案 9.1 本地缓存组件选型 使用缓存组件时需要重点关注集群方式、集群、缓存命中率。 需要关注集群组建方式、缓存统计;还需要考虑缓存开发语言对缓存的影响,如对于JAVA开发的缓存需要考虑GC的影响;最后还要特别关注…

05节-51单片机-模块化编程

1.两种编程方式的对比 传统方式编程: 所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路 模块化编程: 把各个模块的代码放在不同的…

无源光网络(PON)技术的革命:PON模块的全面解析

PON(Passive Optical Network,无源光网络)模块是一种高性能的光模块,用于PON系统中,符合ITU-T G.984.2标准和多源协议(MSA)。它通过不同的波长在OLT(光线路终端)和ONT&am…

超强开源项目!一款 5.6K star 的数据表格工具,灵活现代化【文末带源码】

今天给大家介绍一下 Grist 这个超级厉害的开源项目。 Grist 是一款现代化的数据表格工具,有着强大的功能和灵活的使用方式。 项目特色 这个项目把电子表格和数据库的优秀特点都结合起来,特色如下: 1. 可定制性: Grist 提供了非…

计算机网络 Cisco远程Telnet访问交换机和Console终端连接交换机

一、实验要求和内容 1、配置交换机进入特权模式密文密码为“abcd两位班内学号”,远程登陆密码为“123456” 2、验证PC0通过远程登陆到交换机上,看是否可以进去特权模式 二、实验步骤 1、将一台还没配置的新交换机,利用console线连接设备的…

SSL证书协议详解

SSL/TLS证书(Secure Sockets Layer Certificate)是一种由数字证书颁发机构(CA)签发的一种数字证书,用于确保网络通信的安全性和加密性。SSL证书用于验证服务器或网站的身份,并加密在客户端和服务器之间传输…

✌粤嵌—2024/3/29—赎金信✌

赎金信 代码实现&#xff1a; 哈希表 bool canConstruct(char *ransomNote, char *magazine) {int hash[26] {0};for (int i 0; i < strlen(ransomNote); i) {hash[ransomNote[i] - a];}for (int i 0; i < strlen(magazine); i) {if (hash[magazine[i] - a]) {hash[ma…

【网络设备巡检命令】--思科、华为、H3C、锐捷

【网络设备巡检命令】--思科、华为、H3C、锐捷 一、思科二、华为三、H3C四、锐捷 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 一、思科 1、查看系统信息&#xff1a; show version2、查看时间&#xff1a; show clock3、查看序列号&a…

在Vue项目使用kindEditor富文本编译器

第一步 npm install kindeditor第二步&#xff0c;建立kindeditor.vue组件 <template><div class"kindeditor"><textarea :id"id" name"content" v-model"outContent"></textarea></div> </templa…

cesium加载高层级离线影像地图瓦片(天地图、19级Arcgis)

实际加载效果如图&#xff1a; 1、下载离线地图瓦片方式&#xff08;多种任选其一&#xff0c;个人倾向于Qgis工具&#xff09;&#xff1a; 方式1、采用第三方下载工具如&#xff1a;91卫图、水经注、全能电子地图下载器、bigemap等等。&#xff08;这些有的下载层级不够&…

stable diffusion--小白学习步骤

1.看一下Unet网络的讲解_哔哩哔哩_bilibili&#xff0c;了解Unet网络 2.看一下【生成式AI】Diffusion Model 原理剖析 (1/4)_哔哩哔哩_bilibili&#xff0c;起码要看前3/6个视频 3.看一下超详细的扩散模型&#xff08;Diffusion Models&#xff09;原理代码 - 知乎 (zhihu.co…

SSH KEY 添加

mac&#xff1a; Add SSH KEY公钥 1、 先cd进.ssh文件夹&#xff0c;查看电脑中是否存在之前添加的公钥文件(id_rsa.pub、id_rsa)&#xff0c;要是存在&#xff0c;就先删除: jingchengxindeMacBook-Pro:~ jingchengxin$ cd .ssh jingchengxindeMacBook-Pro:.ssh jingchen…