boosting算法_深入浅出boosting算法

496137e8708b29c98fe684a66f160e95.png

什么是监督学习?

给定一个样本集合

,其中,
  • 特征
  • 标签

我们希望找到下面的一个映射关系

示例

e9cfddb1fc8891a41be98cd2cd591365.png

可以由以下几个简单函数叠加得到

b2ff3f77f7b48b1d9d2899b31fabd39b.png
三个臭皮匠顶个诸葛亮

加法模型(Additive Model)

另一种形式,

  • 为基函数
  • 为基函数系数

f501648bf8ab9fb939df7fa58cb983e7.png

有了模型,接下来如何做?

1576ff8e947a93eebb276ad8ba2e60c7.png

objective & loss

定义模型的优化方向,也称损失

57a8850b759f47c61862a1cd5ad2d8fa.png

一些损失函数,例如

7a8cf3b2afbb25903c8b800b80b2946a.png

接下来问题是,如何做 ?

怎样求解这个模型
关键是如何求解损失函数

直接计算复杂度很高,换种形式

采用贪心的方法,将同时求解

所有参数
的目标函数转化成从前向后逐次求解各个

前向分布算法

forward stagewise additive modeling

  1. initialize
  2. for
    1. compute
    2. update

e7d2107460e95e73bdfad08f62d89430.png

AdaBoost

当损失函数是指数函数时

其中,

是每个基模型
的权重

求解,

由于,

带入得到,

求解

,

接着带入

,对
求导,令导数值为0,求

已知,

计算得

算法描述

AdaBoost.M1 (Discrete AdaBoost)
initialize

for m = 1 to M:
fit classifier
to training data using weights

compute error rate

compute

update

output

in Adaboost,“shortcomings” are identified by high-weight data points

另一种思路

我们要通过分布迭代的方式求解

这个场景可以很容易想到一个经典的迭代求解算法 — 梯度下降

什么是梯度?

函数增长最大的方向

8b8c94c437b8816e993c1d04e3299408.png

一阶泰勒展开

其中,

,

的小邻域内,

于是,

即,

负方向

整理公式,

得到,

其中,

这两个都是标量,可以合并到一起,最后得到

gradient boost

在有限样本空间中,

本身也是样本。因此,我们可以把
看成参数,用损失函数
求导

即,

求解,

通过线性搜索方法求解,

算法描述

gradient boost

  1. for

一个简化的计算方法,可以直接用

去拟合负梯度

此时,我们将学习目标

转化成了在
处的负梯度

变成了一个回归问题

特点
不需要基函数对可导
可以适用于不同问题的损失函数

In Gradient Boosting,“shortcomings” are identified by gradients

参考

http://www.chengli.io/tutorials/gradient_boosting.pdf

https://statweb.stanford.edu/~jhf/ftp/trebst.pdf

https://explained.ai/gradient-boosting/L2-loss.html

https://blog.csdn.net/xsqlx/article/details/51330627

《统计学习方法》-李航

《Machine Learning A Probabilistic Perspective》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值