机器学习(五)集成
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)\),使下式的这个损失最小:
Step2:计算$$a_{m}=\dfrac{1}{2}log\dfrac{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}\alphaG_{m}(x)$$
3、Bagging
比较有代表性的Bagging算法就是随机森林,它就是随机采一些样本,随机采一些属性生成多棵决策树进行共同决策。
Bagging可以减少方差
Boosting可以减少偏差