统计学习方法8-提升方法

AdaBoost算法

  • 判别模型,是前向分步加法算法的特例,损失函数为指数函数。
  • 思想:多个弱分类器(分类规则粗糙简单)合成一个强分类器。
  • 简要:多个弱分类器对实例进行分类,对多个结果加权计算(相当于投票表决,只不过每个人投票的权重不同)得到最终结果。
  • 两个关键点:1、如何获得多个弱分类器。2、多个弱分类器的结果如何加权?
  • 步骤:
    1.首先初始化训练数据权值(对每一个训练数据赋予权值)
    2.对具有权值分布的数据集进行训练,得到一个分类器。
    a.计算该分类器在训练集上的分类误差率
    b.根据误分类率计算该分类器的系数(误差率大的分类器系数小)
    c. 更新训练数据的权值分布(误分的数据点权值加大)
    3.重复2,迭代得到M个分类器
    4.根据M个分类器以及其系数合成一个最终的分类器。

提升树

  • 提升树模型可以表示为决策树的加法模型,不是有n个树投票选择(随机森林),而是将输入值输入到每个树中,然后将每个树的结果累加。这也就意味着,除第一颗树外,之后所加的树的值应该都是一种差值。
  • 当采用平方误差损失时,第一个树之后的树拟合的是残差。
  • 具体步骤:
  1. 先初始化所有输入的输出结果,假设为a。
  2. 计算实际的结果与a差值,累加所有样本的这个差值。得到损失函数。求出使该损失函数最小的a。
  3. 在确定了a的基础上,将所有样本输出值与a做差,得到残差1,作为新的树的样本依据。
  4. 初始化第二颗树的输出结果为b,以得到的残差1为基础,将b与残差1做差并类和,得到这一次的损失函数,然后求出使损失函数最小的输出结果b。
  5. 不断重复类似的流程直到满足要求。
  6. 最终的模型应该是a+b+…

梯度提升树(GBDT)

  • 与提升树类似,将残差变为了损失函数的负梯度。

参考:https://blog.csdn.net/Smile_mingm/article/details/108441387?spm=1001.2014.3001.5501

猜你喜欢

转载自blog.csdn.net/weixin_48760912/article/details/114701065