机器学习-Boosting(AdaBoost、GBDT)

一、集成模型

机器学习-Boosting(AdaBoost、GBDT)_第1张图片

二、Boosting

1、思想

Boosting:将弱学习器组合成强学习器

Boosting思想:个体学习器之间 存在 强依赖关系,一系列个体学习器基本都需要 串行 生成,然后使用组合策略,得到最终的集成模型,这就是boosting的思想。(Bagging为并行,且不存在依赖关系)

机器学习-Boosting(AdaBoost、GBDT)_第2张图片

2、实现

Boosting可以视为一种自适应基模型:

机器学习-Boosting(AdaBoost、GBDT)_第3张图片

 其中Φm(x)为基函数/弱学习器(一般选用CART)

Boosting在集成学习领域是非常耀眼的一类方法,其中又以AdaBoostGBDT最为突出

三、AdaBoost

1、基本思想

样本权重 / “过滤”

---没有先验知识的情况下,初始的分布为等概分布,即训练集如果有N个样本,每个样本的分布概率为1/N

---每次循环后提高误差样本的分布概率,误差样本在训练集中所占权重增大,使得下一次循环的弱学习器能集中力量对这些误分样本进行判断

        前面的模型对训练集预测后,在每个样本上都会产生一个不同损失,AdaBoost会为 每个样本更新权重, 分类错误的样本要 提高权重 ,分类正确的样本要 降低权重 ,下一个学习器会更加“ 关注 ”权重大的样本;每一次得到一个模型后,根据模型在该轮数据上的表现给当前模型设置一个 权重 表现好的权重大 ,最终带权叠加得到最终集成模型模型组合:弱学习器线性组合。

 2、实现

给定训练集:(x1,y1),.....,(xN,yN),其中yi ∈ {-1,1}表示xi的类别标签

训练集上样本的初始分布:w1,i = 1/N

对m = 1:M,(循环M轮,每一轮得到一个弱分类器)

       1、训练样本采用权重Wm,i计算弱分类器Φm(x)

       2、算该弱分类器在分布Wm上的误差:

(Ⅱ(Φm(xi) ≠ yi)满足条件为1,否则为0)(目的:对于分错的样本减小权重,提高模型准确率)

       3、算该弱分类器的权重:

       4、新训练样本的分布:

        (其中Zm为归一化常数,使得Wm+1,是一个分布,对于误差大的数据加大训练)

最后的强分类器为:

机器学习-Boosting(AdaBoost、GBDT)_第4张图片

 3、优缺点

优点:
        -可以使用各种回归分类模型来构建弱学习器,非常灵活
        -Sklearn中对AdaBoost的实现是从带权学习视角出发的,思想朴素,易于理解
        -控制迭代次数可以一定程度防止发生过拟合
缺点:
        - 对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终预测准确性

四、GBDT

1、简介

        GBDT全称Gradient Boosting Decison Tree,同为Boosting家族的一员,它和Adaboost有很大的不同。 Adaboost 是利用前一轮弱学习器的误差率来 更新训练集的权重 ,这样一轮轮的迭代下去,简单的说是 Boosting框架+任意基学习器算法+指数损失函数
        GBDT通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的 残差 基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。因为训练的过程是通过降低偏 差来 不断提高最终分类器的精度

2、实现

给定输入向量X和输出变量Y组成的若干训练样本(X1,Y1),(X2,Y2),…,(Xn,Yn) ,目标是找到近似函数 F(x) ,使损失函数最小在这里我们损失函数使用最小二乘损失函数.

 最优解:

以贪心算法的思想扩展得到Fm(X),求解最优f:

以贪心法在每次选择最优基函数f时仍然困难,使用梯度下降的方法近似计算,给定常数函数F0(X):

根据梯度下降计算“导数(残差)”值:

使用数据 (xi ,aim )(i=1……n )计算拟合残差找到一个CART回归树,得到第m棵树:

 ●更新模型:

 3、图解

机器学习-Boosting(AdaBoost、GBDT)_第5张图片

把每次预测结果最一个叠加,预测为20+6+3+1 = 30.

你可能感兴趣的:(机器学习,机器学习,人工智能)