1 GBDT:梯度提升决策树

1 前言

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

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

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

2 梯度提升树

2.1 整体架构

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

2.1.1 提升树算法

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

...

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

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

2 CART树

1 回归树

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


输入: 训练数据集D;

输出:回归树;

  1. 循环遍历每个特征 j ,每个特征的值 c:寻找最佳分割点(左边是c_1, 右边是c_2):
  2. 选定j,s之后,对数据进行切分,计算切分之后的区域值大小(改区域样本的均值)。
  • 4 继续迭代,一直到满足条件为止;

分类树

2 GDBT算法原理

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

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

损失函数求导:

二分类

损失函数求导过程:

多分类

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

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

3 面试常见题目

  • gbdt如何选择特征?

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

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

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

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

相关推荐
c2385620 小时前
《枚举算法 “翻译官”:用 enum class 给 “游游的礼盒” 算分》
c语言·c++·算法
noipp20 小时前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
ShallWeL20 小时前
【机器学习】(30)—— 嵌入空间
人工智能·神经网络·机器学习·embedding
极客BIM工作室20 小时前
OpenCascade 倒角(Chamfer)算法完整逻辑解析
算法
冻柠檬飞冰走茶20 小时前
PTA基础编程题目集 7-20 打印九九口诀表(C语言实现)
c语言·开发语言·数据结构·算法
鱼子星_20 小时前
《算 · 法》题目解析篇(1):最近公共祖先问题,线段树,最长回文子序列
c++·算法·动态规划·递归
雾喔20 小时前
算法练习5
算法·代理模式
问商十三载20 小时前
RAG 检索召回越多越好?2026 信噪比模型深度解析
人工智能·算法·机器学习
额恩6620 小时前
ResearchPilot 第三阶段总结报告
python·算法
Hi李耶21 小时前
【LeetCode】9-回文数
算法·leetcode·职场和发展