ML-GBDT & XGBoost

[TOC]

Doc
Slides

为何要推导出目标函数而不是直接增加树

Objective function

  • 理论上:搞清楚learning的目的,以及其收敛性。
  • 工程上:
    • gi和hi是对loss function的一次、二次导
    • 目标函数以及整个学习过程只依赖于gi和hi
    • 可以根据实际问题,自定义loss function

Summary

Summary

原理

损失函数

l为loss,\ \Omega \ 为正则项

  • loss:采用加法策略,第t颗树时:在添加第t颗树时,需要优化的目标函数为:其中h和f:note: 是对谁的导
  • 正则项:复杂度:其中w是叶子上的score vector,T是叶子数量

DART Booster

为了解决过拟合,会随机drop trees:

  • 训练速度可能慢于gbtree
  • 由于随机性,早停可能不稳定

特性

Monotonic Constraints单调性限制

  • 一个可选特性:
    会限制模型的结果按照某个特征 单调的进行增减

    也就是说可以降低模型对数据的敏感度,如果明确已知某个特征与预测结果呈单调关系时,那在生成模型的时候就会跟特征数据的单调性有关。

Feature Interaction Constraints单调性限制

  • 一个可选特性:
    不用时,在tree生成的时候,一棵树上的节点会无限制地选用多个特征

    设置此特性时,可以规定,哪些特征可以有interaction(一般独立变量之间可以interaction,非独立变量的话可能会引入噪声)

  • 好处:
    • 预测时更小的噪声
    • 对模型更好地控制

Instance Weight File

  • 规定了模型训练时data中每一条instance的权重
  • 有些instance质量较差,或与前一示例相比变化不大,所以可以调节其所占权重

调参

Overfitting

与overfitting有关的参数:

  • 直接控制模型复杂度:max_depth, min_child_weight and gamma.
  • 增加模型随机性以使得模型对噪声有更强的鲁棒性:
    • subsample and colsample_bytree.
    • Reduce stepsize eta. Remember to increase num_round when you do so.

Imbalanced Dataset

  • 只关注测量指标的大小
    • 平衡数据集 via scale_pos_weight
    • 使用AUC作为metric
  • 关注预测正确的概率
    • 此时不能re-balance数据集
    • Set parameter max_delta_step to a finite number (say 1) to help convergence