机器学习---集成学习(未完成)

文章目录

  • 0、加法模型和前向分布算法
  • 1、Boosting和Bagging
  • 2、Adaboost
  • 3、GBDT(梯度提升决策树)
  • 4、XGboost
  • 5、RF

0、加法模型和前向分布算法

参考

????核心思想:求解加法模型可以考虑使用贪心策略,每一步只学习一个基模型及其系数,使得当前基模型和之前所有的基模型组合后目标表达式取得最优值,最终就可以使得所有弱模型组合后目标表达式取得最优值。这种方法即前向分步算法

当使用的不是平方损失函数,又或者损失函数很难进行优化时,使用前向分步算法求解基函数就非常困难了。为了解决这个问题,Friedman提出了梯度提升(Gradient Boosting)方法。

????核心思想:使用损失函数负梯度的方向代替残差方向,即损失函数的负梯度在当前模型的值作为残差的近似值,所以该值又被称为伪残差(当使用平方损失函数时,伪残差即为残差)。

1、Boosting和Bagging

Boosting本质上是一个加法模型,通过改变训练样本权重学习多个分类器并进行一些线性组合

????Bagging(并行):各基分类器之间无强依赖,将训练集分为若干子集【分治思想,对训练样本多次采样并训练多个不同模型再做综合来减小集成分类器的偏差】【优点:集成后的分类器的方差比基分类器的方差小】
Bagging所采用的基分类器最好本身是对样本分布较为敏感的(即不稳定分类器),而线性分类器、K-近邻分类器都是比较稳定的分类器,本身方差不大,以它们为基分类器使用Bagging难以获得良好的表现,甚至可能导致它们在训练时更难收敛从而增大了集成分类器的偏差。
????Boosting(串行):各基分类器之间有依赖【聚焦于基分类器分错的样本,减小集成分类器的偏差】

2、Adaboost

加法模型+指数损失函数+前向分布算法
从弱分类器出发,反复训练,并不断调整数据权重或分布概率,同时提高前一轮被弱分类器误分的样本的权值,最后采用分类器进行投票表决。Adaboost不是采用简单的投票方式,而是加权表决法

????基本思想:对分类正确的样本降低权重,对分类错误的样本升高或保持权重不变,在模型融合过程中也根据错误率对基分类器进行加权融合,错误率低的分类器有更大的话语权

????算法流程:1、初始化训练样本的权值分布
2、依次构造并训练弱分类器
3、集成训练好的弱分类器

B站公式推导

3、GBDT(梯度提升决策树)

????基本思想:根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加形式结合到现有模型中。

????算法流程:在每一轮的迭代中先算出当前模型在所有样本上的负梯度,然后以该值为目标训练一个新的弱分类器进行拟合并计算出该弱分类器的权重,最终实现模型的更新

VS:1、Adaboost通过不断修改权重、不断加入弱分类器进行boosting;GBDT通过不断在负梯度方向上加入新的树进行boosting
2、AdaBoost使用的是指数损失,这个损失函数的缺点是对于异常点非常敏感,因而通常在噪音比较多的数据集上表现不佳。Gradient Boosting在这方面进行了改进,使得可以使用任何损失函数 (只要损失函数是连续可导的),这样一些比较robust的损失函数就能得以应用,使模型抗噪音能力更强。

4、XGboost

目标函数

????基本思想

VS:GBDT基于经验损失函数的负梯度构造新的决策树,在决策树构建完成后再进行剪枝,XGBoost在决策树构建阶段就加入了正则化项。

????XGBoost VS GDBT
与GBDT相比,XGBoost在以下方面有提升:

GBDT使用CART作为基模型,XGBoost不近可以使用CART作为基模型,还可以使用线性分类器,此时相当于引入 L 1 L1 L1和 L
2 L2 L2正则化项的逻辑回归和线性回归。
GBDT在优化时仅使用了一阶导数,而XGBoost对目标函数做了泰勒展开,使用了一阶导数和二阶导数。使用了二阶导数之后,梯度下降的更快更准。同时,可以在不选定损失函数具体形式的情况下,仅仅依靠输入数据的值就可以进行叶子分裂优化计算,本质上也就把损失函数的选取和模型算法优化/参数选择分开了。
当样本存在缺失值时,XGBoost能自动学习分裂方向。 XGBoost支持列抽样。
XGBoost中引入了正则化项,控制了模型的复杂度,防止模型过拟合。
XGBoost在每次迭代之后,为叶子结点分配学习速率,降低每棵树的权重,减少每棵树的影响,为后面提供更好的学习空间;
XGBoost支持特征粒度上的并行。XGBoost已经预先对数据进行了排序。各个特征的增益计算可以并行进行。 可并行的近似直方图算法。
  XGBoost的缺点主要有以下两个方面:

XGBoost需要保存各个特征预先排序的结果,占用内存。
XGBoost采用level-wise生成决策树,同时分裂同一层的叶子,从而进行多线程优化,不容易过拟合,但很多叶子节点的分裂增益较低,没必要进行跟进一步的分裂,这就带来了不必要的开销;

5、RF

????优点
1、随机森林简单、容易实现、计算开销小。 2、随机森林的训练可以并行进行,训练速度较快。
3、随机森林可以处理高维特征,且不用做特征选择。
4、随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动。随机森林的训练效率常优于Bagging

上一篇:idea链接gitlab的token到期