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博客

相关推荐
Charlie_lll5 分钟前
力扣解题-移动零
后端·算法·leetcode
chaser&upper5 分钟前
矩阵革命:在 AtomGit 解码 CANN ops-nn 如何构建 AIGC 的“线性基石”
程序人生·算法
weixin_4997715514 分钟前
C++中的组合模式
开发语言·c++·算法
iAkuya1 小时前
(leetcode)力扣100 62N皇后问题 (普通回溯(使用set存储),位运算回溯)
算法·leetcode·职场和发展
近津薪荼1 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
xiaoye-duck1 小时前
吃透 C++ STL list:从基础使用到特性对比,解锁链表容器高效用法
c++·算法·stl
松☆1 小时前
CANN与大模型推理:在边缘端高效运行7B参数语言模型的实践指南
人工智能·算法·语言模型
java干货1 小时前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
皮皮哎哟1 小时前
数据结构:嵌入式常用排序与查找算法精讲
数据结构·算法·排序算法·二分查找·快速排序
程序员清洒1 小时前
CANN模型剪枝:从敏感度感知到硬件稀疏加速的全链路压缩实战
算法·机器学习·剪枝