xgboost

作者: 7ccc099f4608 | 来源:发表于2020-05-12 07:50 被阅读0次

    LR

    1. 通过sigmoid函数将线性回归的结果映射到[0, 1]之间,得到预测为正样本的概率值;
    2. 本质上,是利用线性回归去拟合对数几率(几率的定义: 一个事件发生的概率比上不发生的概率);
    3. 利用最大似然估计模型的参数,推导出对数损失函数(交叉熵损失),利用梯度下降,或者牛顿法求解参数;
      [图片上传失败...(image-1463e1-1593328679846)]
      ](https://img.haomeiwen.com/i1560080/98ae366572a52646.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    ADABOOST

    加性模型,使用:通过改变每轮次样本 分类器的权重

    GBDT

    迭代拟合上一棵树的负梯度,当loss使用MSE时,为残差。

    函数空间里(上一轮生成的数),损失函数 对上一轮生成树求偏导
    (普通做法:参数空间,损失函数 对参数求偏导 (w/b, 权重/偏置) )

    XGB

    在GBDT训练过程中,最耗时的部分在于回归树的构建过程中最优分裂特征,分裂阈值的查找过程

    a. 更快:
    加速分裂阈值的查找过程:(减少排序带来的性能问题)

    1. 特征预排序:利用特征的分位点进行近似的近似算法 --- xgboost;
    2. 基于特征直方图:特征的离散取值(bin),构建关于特征信息的(一阶导数,二阶导数)直方图 --- LightGBM

    b. 防过拟合:
    loss函数加入正则(叶子节点个数 & 叶子节点权重二范数 (平方和)),防过拟合;
    loss函数计算使用牛顿法,二阶泰勒展开,更细腻(GBDT,梯度下降,使用一阶展开)

    c. 支持自定义损失函数(只要loss二阶可导即可)

    d. 数据采样(样本/特征)

    e. 缺失值自动处理(指定缺失值后,分割在左右子树后loss增益多)

        根据前身传播的单调性约束检查两个叶子的值。
        检查两片叶子之间的单调性。
        如果单调性被破坏,则拒绝拆分。
    

    lightgbm

    image.png

    a. 减少训练样本量:GOSS (利用单边梯度采用算法(Gradient-Based One-Side Sampling, GOSS)
    小梯度的样本,对于损失函数的贡献是很小


    image.png

    b. 减少特征/组合特征:EFB(互斥特征绑定(Exclusive Feature Bundling, EFB) ):
    即在高维稀疏的特征空间中,可能存在多个特征的取值不会同时为非零值 / 冲突比低
    金融/短视频应用

    c. 在构建树的过程中,LightGBM利用的Leaf-wise的形式(best-first), 也就是在构建回归树的过程中是选择增益最明显的节点往下分裂,而不是按部就班地逐层Level-wise方式,相同层的节点都需要同时进行分裂,带来不不要的分裂

    d. 直方图加速:
    连续特征进行离散化,计算梯度;
    e. 类别特征处理:
    类别特征分桶,计算梯度,找分割点;


    Attention

    加权和:
    输出全连接输入,希望能够增强时间步 关注度/权重


    损失函数用于学习每轮树的生成参数

    损失函数中加入正则:

    1. 叶子节点权重的L2范数,目的是使得权重值更平滑,连续;
    2. 叶子节点的个数T,在XGBoost中树的生长方式是Level-wise的方式,每一层都需要同时进行分裂,有可能导致不必要的特征参与分裂

    并用二阶泰勒展开

    缺失值自动处理

    数据采样(样本/特征)

    相关文章

      网友评论

          本文标题:xgboost

          本文链接:https://www.haomeiwen.com/subject/adrvnhtx.html