机器学习(五)集成

1、集成

集成指用多个基学习器共同构成一个更加强大的学习器。
集成包含三种方法:Boosting,Bagging,Stacking
1、Boosting:包括GBDT和Adaboost,各学习器间存在强依赖关系,只能串行实现
2、Bagging的代表算法是随机森林,各学习器间不存在强依赖关系,可以并行实现
3、Stacking主要是分层结构。每个初级学习器负责一部分的领域知识并构成次级学习器。

2、Boosting

1、GBDT:梯度提升决策树
原理简介如下图所示:

这里写图片描述

它的基本思想是:迭代第m次的基函数是根据上一颗树的伪残差训练出来的。

2、Adaboost
输入:训练数据集(D={(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})})
初始化:为每条数据赋一个权重,通常(D_{w}={w_{11},w_{12},...,w_{1N}}),其中,1表示第1次迭代。
步骤:
Step1:找到一个二分类器(G_{m}(x)),使下式的这个损失最小:

[e_{m}=sum^{N}_{i=1}w_{mi}I(G_{m}(x_{I}) eq y_{i}) ]

Step2:计算$$a_{m}=dfrac{1}{2}logdfrac{1-e_{m}}{e_{m}}$$
Step3:更新权值$$w_{m+1,i}=dfrac{w_{mi}}{z_{m}}exp(-alpha_{m}y_{i}G_{m}(x_{i}))$$其中,(z_{m})为一归一化因子
Step4: (m=m+1),并返回Step1进行迭代。

最终求得的分类函数为$$f(x)=sum^{N}{m=1}alpha{m}G_{m}(x)$$

3、Bagging

比较有代表性的Bagging算法就是随机森林,它就是随机采一些样本,随机采一些属性生成多棵决策树进行共同决策。

Bagging可以减少方差
Boosting可以减少偏差

原文地址:https://www.cnblogs.com/Yolanda7171/p/7242341.html