IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 提升树算法 -> 正文阅读

[数据结构与算法]提升树算法

一:提升树模型

提升树是以分类树或回归树为基分类器的提升方法,提升树被认为是统计学习中性能最好的方法之一
提升方法实际采用前向分步算法和加法模型(即基函数的限行组合),以决策树为基函数的提升方法称为提升树,对分类问题的决策树是二叉分类树,对回归问题的决策树是二叉回归树。提升树的模型可以表示为决策树的加法模型:
在这里插入图片描述
二:提升树算法
提升树算法采用前向分步算法,首先确定初始提升树Fo(x) = 0,第m步的模型为:
在这里插入图片描述
通过经验风险最小化,那么决策树的参数θm可表示为:
在这里插入图片描述

二:不同的提升树学习算法

针对不同问题的提升树学习算法,其主要区别在于使用的损失函数不同。主要有
1,使用平方误差损失函数的回归问题
2,使用指数损失函数的分类问题
3,使用一般损失函数的一般决策问题

(一)使用指数损失函数的分类问题提升树:对于二分类问题,只需要将Adaboost算法中的基分类器限定为二分类树即可。可以说这时候的提升树算法是adaboost算法的特殊情况
(二)使用平方误差的回归问题提升树:
输入:训练数据集T = {(x1,y1),(x2,y2)…(xn,yn)},x,y都属于实数,即树可以表示为:
在这里插入图片描述

输出:提升树fm(x)
(1)初始化f0(x) = 0
(2)对于m = 1,2,…M.:
a:按照树公式,计算残差Rmi:(详情看证明)
在这里插入图片描述
b:拟合残差Rmi学习一个回归树,得到T(x, θm)
c:更新fm(x) = fm-1(x)+T(x, θm)
(3)得到回归问题提升树
在这里插入图片描述
证明:回归问题的提升树只需要拟合当前模型fm-1(x)的残差
回归为题提升树采用前向分步算法:
在这里插入图片描述
(三)使用一般损失函数的一般决策问题的提升树–梯度提升树大名鼎鼎的GBDT
提升树采用加法模型和前向分步算法实现学习的优化过程,当损失函数为指数或者平方损失函数时候,其优化过程是简单的,但对于一般损失函数而言,其优化过程尤为复杂。针对这个问题,FREIDMAN提出了梯度提升树(gradient boosting decition tree ),这是利用最速下降法的近似方法,其关键是利用损失函数的负梯度在当前模型的值:
在这里插入图片描述

来作为回归问题提升树算法中的残差的近似值,从而拟合一个回归树。
GBDT实现步骤:
在这里插入图片描述
算法过程的特点:

  1. 算法每次迭代生成一颗新的决策树
  2. 计算损失函数对每个样本的一阶导和二阶导
  3. 通过贪心算法生成新的决策树,同时计算每个叶子节点的权重w
  4. 把新生成的决策树f(x)添加到模型中

GBDT的正则化方法:
1,第一种就是和adboost算法一样的正则化项,即设置步长,定义为v,对于弱学习器的迭代:
在这里插入图片描述
加上正则化项以后则有:
在这里插入图片描述
在同样的训练集上,较小的v就意味着弱学习器需要更多的迭代次数,通常我们用步长和最大迭代次数来决定算法的拟合效果。
2,第二种就是通过子采样比例,取值范围为(0,1】注意这里的采样和随机森林采样方式不同,随机森林是有放回的采样,这里是不放回抽样。设取值为x,当x= 1时候,即所有样本都可参与训练,等于没抽样,相同,如果x = 0,也等于没抽样,当0<x<1时,则只有部分样本会参与GBDT的决策树拟合。当x<1时候,会减少模型的方差,防止过拟合,但是会增加模型的偏差,因此取值不能太低,通常取值为【0.5,0.8】
使用了子采样的GBDT有时也称作随机梯度提升树(Stochastic Gradient Boosting Tree, SGBT)。由于使用了子采样,程序可以通过采样分发到不同的任务去做boosting的迭代过程,最后形成新树,从而减少弱学习器难以并行学习的弱点。
3,第三种就是对cart进行正则化剪枝。
GBDT的优缺点:
GBDT的主要优点有
1,能灵活的拟合各类数据,连续值和离散值都行
2,当采用一些健壮的损失函数时,对异常值的鲁棒性较强,比如 Huber损失函数和Quantile损失函数。更多损失函数可参考该文档
3,在相对较少的调参时间情况下,预备的准确率也较高。这个问题有一个经典的面试问答
GBDT的主要缺点有:
  1)由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:29:50  更:2021-07-27 16:32:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:28:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计