机器学习 | GBDT与集成学习

待完善

1、偏差与方差

我们对学习算法的期望泛化错误率进行拆解,以回归任务为例。

假设

泛化误差可分解为偏差、方差与噪声之和。

决策树虽然在设计时也考虑过模型的方差,但不管怎么说也是在生成之后,其泛化误差一直都不是很理想,还是容易过拟合。

2、集成学习

目前,有三种常见的集成学习框架:bagging,boosting和stacking

bagging:从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果:



  boosting:训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化。对所有基模型预测的结果进行线性综合产生最终的预测结果:



  stacking:将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测:

  有了这些基本概念之后,直觉将告诉我们,由于不再是单一的模型进行预测,所以模型有了“集思广益”的能力,也就不容易产生过拟合现象。

3、boosting

boosting是一个加法模型,这些基模型之间是串行的。

先从一般的前向分步算法讲起

当什么什么的时候就是adaboost算法

当回归,,称为梯度boosting,

3、GBDT(Gradient Boosting Decision Tree)

  • 我们要构建一个串行的加法集成学习器,使得

其中每一个弱分类器$f_i(x)$的

4、前向分布算法

图片.png

5、Adaboost

假设给定一个二分类的训练数据集X和y,其中y取值-1和+1.

Adaboost 算法是特殊的前向分布算法,这是模型由基本分类器组成,损失函数为指数函数 exp(-yf(x))

算法(Adaboost)

(1) 初始化训练数据的权值分布

梯度boost算法

同样是前向分布算法,我们暂时限定模型的目的为回归,且损失函数采用测度类型,即$\sum||y-f(x)||_{?}$,同时去除前向分布算法中每一个基模型前的系数$\alpha$。在这些准备工作后,我们再看每一步的迭代过程

$$\arg\min_{f}\sum\mathcal{L}(y_i)$$

[1] Wiki:Gradient_boosting

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容